需要源码请点赞关注收藏后评论区留言私信~~~
阈值是图像处理中一个很重要的概念,类似一个“像素值的标准线”。所有像素值都与这条“标准线”进行比较,最后得到3种结果:像素值比阈值大、像素值比阈值小或像素值等于阈值。程序根据这些结果将所有像素进行分组,然后对某一组像素进行“加深”或“变淡”操作,使得整个图像的轮廓更加鲜明,更容易被计算机或肉眼识别。下面将对阈值的相关内容进行详细的介绍
一、阈值处理函数
在图像处理的过程中,阈值的使用使得图像的像素值更单一,进而使得图像的效果更简单,首先把一幅彩色图像转换为灰度图像,这样图像的像素值取值范围简化为0-255,然后通过阈值转换后的灰度图像呈现出只有纯黑色和纯白色的视觉效果
threshold方法用于对图像进行阈值处理,语法格式如下
retval,dst=cv2.threshold(src,thresh,maxval,type)
thresh 阈值 在125-150取值效果较好
maxval 阈值处理采用的最大值
type 阈值处理类型 常用类型和含义如下图所示
retval 处理时采用的阈值
dst 经过阈值处理后的图像
二、二值化
二值化处理和反二值化处理使得灰度图像的像素值两极分化,灰度图像呈现出只有纯黑色和纯白色的视觉效果
进行二值化处理时,每一个像素值都会与阈值进行比较,将大于阈值的像素值变为最大值,小于或者等于阈值的像素值变为0
二值化处理黑白渐变图如下
import cv2 img = cv2.imread("black.png", 0) # 将图像读成灰度图像 t1, dst1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 二值化阈值处理 cv2.imshow('img', img) # 显示原图 cv2.imshow('dst1', dst1) # 二值化阈值处理效果图 cv2.waitKey() # 按下任何键盘按键后 cv2.destroyAllWindows() # 释放所有窗体
通过修改阈值大小可以调整黑白交界的位置
import cv2 img = cv2.imread("black.png", 0) # 将图像读成灰度图像 t1, dst1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 二值化阈值处理 t2, dst2 = cv2.threshold(img, 210, 255, cv2.THRESH_BINARY) # 调高阈值效果 cv2.imshow('dst1', dst1) # 展示阈值为127时的效果 cv2.imshow('dst2', dst2) # 展示阈值为210时的效果 cv2.waitKey() # 按下任何键盘按键后 cv2.destroyAllWindows() # 释放所有窗体
可见边界处有了明显的变化
下面我们观察不同最大值的处理效果
当将最大值调到150时表现为灰色而不是255的纯白色
import cv2 img = cv2.imread("black.png", 0) # 将图像读成灰度图像 t1, dst1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 二值化阈值处理 t3, dst3 = cv2.threshold(img, 127, 150, cv2.THRESH_BINARY) # 调低最大值效果 cv2.imshow('dst1', dst1) # 展示最大值为255时的效果 cv2.imshow('dst3', dst3) # 展示最大值为15时的效果 cv2.waitKey() # 按下任何键盘按键后 cv2.destroyAllWindows() # 释放所有窗体
三、反二值化处理
其结果为二值化处理的相反结构,将大于阈值的像素值变为0,将小于或者等于阈值的像素值变为最大值
下面对图像进行反二值化处理
彩色图像经过反二值化处理后,因为各通道的颜色分量值不同,会呈现混乱的效果
import cv2 img = cv2.imread("black.png", 0) # 将图像读成灰度图像 t1, dst1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 二值化阈值处理 t4, dst4 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV) # 反二值化阈值处理 cv2.imshow('dst1', dst1) # 展示二值化效果 cv2.imshow('dst4', dst4) # 展示反二值化效果 cv2.waitKey() # 按下任何键盘按键后 cv2.destroyAllWindows() # 释放所有窗体
创作不易 觉得有帮助请点赞关注收藏~~~