『youcans 的 OpenCV 例程200篇 - 总目录』
【OpenCV 例程200篇】38. 图像的反色变换(图像反转)
灰度变换是图像增强的重要方法,可以使图像动态范围扩大、图像对比度增强,图像更清晰,特征更明显,从而改善图像的显示效果。
灰度变换就是按一定规则(灰度映射函数)修改图像每一个像素的灰度值,从而改变图像灰度的动态范围。按照灰度映射函数的性质,灰度变换可以分为线性变换、分段线性和非线性变换,非线性变换中对数变换、指数变换和幂律变换(n次幂、n次根)最为常用。
3.1 反色变换(图像反转)
图像的反色变换,即图像反转,将黑色像素点变白色,白色像素点变黑色。广义的反色变换也可以应用于彩色图像,即对所有像素点取补。
图像的反转处理可以增强暗色区域中的白色或灰色细节。
注意图像反转(Invert)与图像翻转(Flip)的区别:图像翻转是沿对称轴的几何变换,像素值不变;图像反转是像素颜色的逆转,像素位置不变。
例程:1.48 图像的反色变换
# 1.48 图像的反色变换
img = cv2.imread("../images/imgLena.tif") # 读取彩色图像(BGR)
imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 颜色转换:BGR(OpenCV) -> Gray
h, w = img.shape[:2] # 图片的高度和宽度
# imgInv = np.zeros_like(img) # 创建与 img 相同形状的黑色图像
imgInv = np.empty((w, h), np.uint8) # 创建空白数组
for i in range(h):
for j in range(w):
imgInv[i][j] = 255 - imgGray[i][j]
plt.figure(figsize=(10,6))
plt.subplot(131), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)), plt.title("imgBGR"), plt.axis('off')
plt.subplot(132), plt.imshow(imgGray, cmap='gray'), plt.title("imgGray"), plt.axis('off')
plt.subplot(133), plt.imshow(imgInv, cmap='gray'), plt.title("imgInv"), plt.axis('off')
plt.show()
(本节完)
版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/121453961)
Copyright 2022 youcans, XUPT
Crated:2021-11-18
【第4章:灰度变换与直方图】