阈值与平滑处理

#阈值处理
定义:指剔除图像内像素值高于一定值或者低于一定值的像素点
例如,设定阈值为127,然后将图像内所有像素值大于127的像素点的值设为255。将图像内所有像素值小于或等于127的像素点的值设为0。
阈值与平滑处理_第1张图片
阈值与平滑处理_第2张图片
阈值与平滑处理_第3张图片
阈值与平滑处理_第4张图片

#自适应阈值处理
定义:使用变化的阈值完成对图像的阈值处理。
操作:通过计算每个像素点周围临近区域的加权平均值获得阈值,并使用该阈值对当前像素点进行处理。
目的:保留了更多的细节信息
阈值与平滑处理_第5张图片
阈值与平滑处理_第6张图片
阈值与平滑处理_第7张图片
在这里插入图片描述
#Otsu阈值运算
阈值与平滑处理_第8张图片

#函数实操与彩色图像
阈值与平滑处理_第9张图片
阈值与平滑处理_第10张图片
阈值与平滑处理_第11张图片
阈值与平滑处理_第12张图片
#平滑处理
阈值与平滑处理_第13张图片
阈值与平滑处理_第14张图片均值滤波:是指用当前像素点周围N*N个像素值的均值来代替当前像素值。
dst=cv2.blur(src,ksize,anchor,borderType)
ksize:滤波核的大小。滤波核大小是指在均值处理过程中,其邻域图像的高度和宽度。
anchor:锚点,其默认值是(-1,-1),表示当前计算均值的点位于核的中心点位置。
borderType:边界样式,该值决定了以何种方式处理边界。
通常情况下,使用均值滤波函数时,对于锚点anchor和边界样式borderType,直接采用其默认值即可。因此,函数cv2.blur()的一般形式为:dst=cv2.blur(src,ksize,)。缺点在于它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。

方框滤波:自由选择是否对均值滤波的结果进行归一化,即可以自由选择滤波结果是邻域像素值之和的平均值,还是邻域像素值之和。
cv2.boxFilter(src,ddepth,ksize,anchor,normalize,borderType)
ddepth是处理结果图像的图像深度,一般使用-1表示与原始图像使用相同的图像深度。
normalize 表示在滤波时是否进行归一化(这里指将计算结果规范化为当前像素值范围内的值)处理,该参数是一个逻辑值,可能为真(值为1)或假(值为0)。
通常情况下,函数cv2.boxFilter()的一般形式为:dst=cv2.boxFilter(src,ddepth,ksize)

高斯滤波:将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算邻域内各个像素值不同权重的和。
dst=cv2.GaussianBlur(src,ksize,sigmaX,sigmaY,borderType)
sigmaX 是卷积核在水平方向上(X 轴方向)的标准差,其控制的是权重比例。
sigmaY是卷积核在垂直方向上(Y轴方向)的标准差。
在实际处理中,可以显式指定sigmaX和sigmaY为默认值0。因此,函数cv2.GaussianBlur()的常用形式为dst=cv2.GaussianBlur(src,ksize,0,0),高斯滤波的作用是消除高斯噪声(抑制服从正态分布的噪声)

中值滤波:用邻域内所有像素值的中间值来替代当前像素点的像素值。dst=cv2.medianBlur(src,ksize)
该方法在去除脉冲噪声、椒盐噪声的同时又能保留图像边缘细节

双边滤波:是综合考虑空间信息和色彩信息的滤波方式,在滤波过程中能够有效地保护图像内的边缘信息。
cv2.bilateralFilter(src,d,sigmaColor,sigmaSpace,borderType)
d:在滤波时选取的空间距离参数,这里表示以当前像素点为中心点的直径。如果该值为非正数,则会自动从参数 sigmaSpace 计算得到。
sigmaColor:滤波处理时选取的颜色差值范围,该值决定了周围哪些像素点能够参与到滤波中来。
sigmaSpace:坐标空间中的sigma值。
在函数cv2.bilateralFilter()中,参数borderType是可选参数,其余参数全部为必选参数。
cv2.bilateralFilter(src,d,sigmaColor,sigmaSpace)

2D卷积:使用特定的卷积核实现卷积操作。
*dst=cv2.filter2D(src,ddepth,kernel,anchor,delta,borderType)
delta :修正值,它是可选项。如果该值存在,会在基础滤波的结果上加上该值作为最终的滤波处理结果。
在通常情况下,使用滤波函数cv2.filter2D()时,对于参数锚点anchor、修正值delta、边界样式borderType,直接采用其默认值即可。因此,函数cv2.filter2D()的常用形式为:dst=cv2.filter2D(src,ddepth,kernel)

阈值与平滑处理_第15张图片

你可能感兴趣的:(OpenCV,opencv)