灰度图对比度操作(笔记)"/>
Python 图像处理OpenCV:灰度图对比度操作(笔记)
对图像的灰度图进行对比度增强或减弱操作,前半部分对k值进行操作,后半部分对k值和b值都进行操作。
代码如下:
import cv2 as cv
import numpy as np
# 图像灰度对比度操作
img = cv.imread("./image/fengjing.jpg")
# 在做线性变换之前,需要将彩色图像变为灰度图像。通常用cvtColor()来进行颜色空间的转换
# 将图像转换成灰度图
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
print(img_gray.shape)
height, width = img_gray.shape[:2]
print(height, width)
# 创建新图像,以便于后续操作
img_a = np.zeros((height, width), np.uint8)
img_b = np.zeros((height, width), np.uint8)
# 对比度增强,k=1.6
for i in range(height):for j in range(width):result = int(img_gray[i, j] * 1.6)if result > 255:result = 1else:result = result# 这不能写continue,否则会接不到resultimg_a[i, j] = np.uint8(result)
# 对比度减弱,k=0.3
for i in range(height):for j in range(width):result = int(img_gray[i, j] * 0.3)if result < 0:result = 0else:result = result# 这不能写continue,否则会接不到resultimg_b[i, j] = np.uint8(result)
cv.imshow("img", img)
cv.imshow("result_a", img_a)
cv.imshow("result_b", img_b)
cv.waitKey(0)
cv.destroyAllWindows()
运行结果:
上述只是对k值进行操作,下面对k值和b值都进行操作。
代码如下:
import cv2 as cv
import numpy as np
# 图像灰度对比度操作
img = cv.imread("./image/fengjing.jpg")
# 在做线性变换之前,需要将彩色图像变为灰度图像。通常用cvtColor()来进行颜色空间的转换
# 将图像转换成灰度图
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
print(img_gray.shape)
height, width = img_gray.shape[:2]
print(height, width)
# 创建新图像,以便于后续操作
img_a = np.zeros((height, width), np.uint8)
img_b = np.zeros((height, width), np.uint8)
# 对比度增强,k=1.6,亮度增强,b=90,其中,b也可为0
for i in range(height):for j in range(width):result = int(img_gray[i, j] * 1.6 + 90)if result > 255:result = 1else:result = result# 这不能写continue,否则会接不到resultimg_a[i, j] = np.uint8(result)
# 对比度减弱,k=0.3,亮度增强,b=90,其中,b也可为0
for i in range(height):for j in range(width):result = int(img_gray[i, j] * 0.3 + 90)if result < 0:result = 0else:result = result# 这不能写continue,否则会接不到resultimg_b[i, j] = np.uint8(result)
cv.imshow("img", img)
cv.imshow("result_a", img_a)
cv.imshow("result_b", img_b)
cv.waitKey(0)
cv.destroyAllWindows()
运行结果:
与上半部分对比,发现通过b值的加入,亮度明显增强。
更多推荐
Python 图像处理OpenCV:灰度图对比度操作(笔记)
发布评论