一、直方图均衡化:
1、什么是直方图均衡化:
直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。
- 对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比越大,差异范围越小代表对比越小,好的对比率120:1就可容易地显示生动、丰富的色彩,当对比率高达300:1时,便可支持各阶的颜色。
对比度也就是画面黑与白的比值,也就是从黑到白的渐变层次。比值越大,从黑到白的渐变层次就越多,从而色彩表现越丰富。对比度对视觉效果的影响非常关键,一般来说对比度越大,图像越清晰醒目,色彩也越鲜明艳丽;而对比度小,则会让整个画面都灰蒙蒙的。 - 一般情况下直方图均衡化要做的就是让直方图尽可能地均匀分布在0~255内。
2、直方图均衡化的作用:
- 这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
- 这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景噪声的对比度并且降低有用信号的对比度。
3、使用直方图均衡化:
cv2.equalizeHist(src, dst=None)
- src 原图像
import cv2
img = cv2.imread("equalize.png",0)
equalize = cv2.equalizeHist(img)
cv2.imshow("equalize",equalize)
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()
二、图像掩膜:
1、什么是图像掩膜?
- 在半导体制造中,许多芯片工艺步骤采用光刻技术,“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域。
- 图像掩膜与其类似,用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。
2、图像掩膜有哪些作用?
用选定的图像、图形或物体,对待处理的图像(局部或全部)进行遮挡来控制图像处理的区域或处理过程。掩模本质上为二维矩阵数组,图像掩模主要用于:
- 提取感兴趣区:用预先制作的感兴趣区掩膜与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0;
- 屏蔽作用:用掩膜对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计;
- 结构特征提取:用相似性变量或图像匹配方法检测和提取图像中与掩膜相似的结构特征;
- 特殊形状图像的制作
- 掩膜就是两幅图像之间进行的各种位运算操作(简单了解)
3、如何使用掩膜:
绘制多边形:
cv2.polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
任意形状填充:
cv2.fillPoly(img, pts, color, lineType=None, shift=None, offset=None)
- img : 原图像
- pts :多维数组
- color :边框颜色
- lineType: 线的类型
- shift :线的类型
- offset : 所有点的偏移量
获取指定形状和尺寸的结构元素:
cv2.getStructuringElement(shape, ksize, anchor=None)
- shape:形状
shape | 形状 |
---|---|
MORPH_RECT | 矩形 |
MO |