目录
一. 二值化操作
1. cv.threshold ( ) 普通二值化
retval, dst = cv.threshold(src, thresh, maxval, type[, dst])
参数:
src:原图像,应该是灰度图
thresh:当前阈值,用于对图像进行分类
maxval:最大阈值,一般为255,表示如果像素值大于(有时小于)阈值则要给出的值
type:阈值类型,主要有下面几种:
cv.THRESH_BINARY:默认的二值化方法,像素值大于阈值时设置为maxval,否则设置为0。
cv.THRESH_BINARY_INV:反向二值化,像素值大于阈值时设置为0,否则设置为maxval。
cv.THRESH_TRUNC:截断,像素值大于阈值时设置为阈值,否则保持不变。
cv.THRESH_TOZERO:像素值大于阈值时保持不变,否则设置为0。
cv.THRESH_TOZERO_INV:反向截断,像素值大于阈值时保持不变,否则设置为maxval。
dst:结果图像,可选参数,如果不提供,将创建一个新的图像。
返回值:
retval:返回一个阈值,这个值是在函数内部自动计算得到的,可以不关心
dst:二值化后的结果图像。
2. cv2.adaptiveThreshold ( ) 自适应二值化
cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst])
参数:
src: 表示输入的灰度图像,这是必选项
maxValue: 二值化后像素点的最大值,通常设置为255
adaptiveMethod: 指定自适应阈值算法
可以选择:
cv.ADAPTIVE_THRESH_MEAN_C
cv.ADAPTIVE_THRESH_GAUSSIAN_C
thresholdType:
指定阈值的类型
可以选择cv.THRESH_BINARY / cv.THRESH_BINARY_INV
blockSize: 决定计算阈值的区域大小,通常是一个奇数
C: 从均值或加权和中减去的常数,用于调整阈值
dst: 可选参数,表示输出的二值图像
2.1 大津法二值化操作
cv.threshold(img,0,255,cv.THRESH_BINARY+cv.THRESH_OTSU)
2.2 高斯模糊大律法二值化操作
blur = cv.GaussianBlur(img,(5,5),0)
ret3,th3 = cv.threshold(blur,0,255,cv.THRESH_BINARY+cv.THRESH_OTSU)
高斯模糊:
cv2.GaussianBlur(src, ksize, sigmaX, sigmaY=0, borderType=BORDER_DEFAULT)
参数:
src: 输入图像,可以是任意通道数的图像
ksize: 高斯核的大小,它是一个Size对象
表示在每个方向上高斯核的宽度和高度:
1. 必须为正数和奇数,也可以为零
2. 根据sigmaX和sigmaY计算得出
sigmaX: X方向上的高斯核标准偏差,该参数决定了高斯滤波器在水平方向上的平滑程度
sigmaY: Y方向上的高斯核标准偏差,如果未指定,则默认为0,此时sigmaY将自动设置为与sigmaX相同的值
borderType: 边界类型,用于指定当高斯核超出图像边界时如何处理边界像素
默认值为BORDER_DEFAULT,表示使用反射边界处理
作用:
高斯模糊是一种线性平滑滤波,适用于消除高斯噪声
场景:
广泛应用于图像处理的减噪过程
在实际应用中,可以根据需要调整ksize和sigma的值来控制模糊的程度
例如,较大的ksize或sigma值会导致更强烈的模糊效果
感谢阅读🌼
如果喜欢这篇文章,记得点赞👍和转发🔄哦!
有任何想法或问题,欢迎留言交流💬,我们下次见!
本文相关代码存放位置
【Opencv 图像变换代码实现】
祝愉快🌟!