引言:首先我们应该了解什么是阈值分割?有什么作用?如何实现?下面一起来学习一下吧!!!
1.什么是阈值分割?
阈值分割:在图像领域中,顾名思义就是将一幅图像按照设定的不同阈值分割为两部分,其实就是按照图像中各个像素值做出的划分,也就是说将图像中的像素值划分成两部分(按照你设定的阈值大小)。
2.有什么作用呢?
在图像处理中,占据着重要的地位,是图像预处理中的核心内容(包括滤波处理),如果还不知道滤波处理,就来看一下这篇文章吧!this。
阈值分割能够消除一定的噪声,并能够提取目标的所在区域(所谓目标就是你想要得到的部分,就是你的目标)。一般情况下,提取到的图像为黑白图像,因为在二值化之前首先要进行图像的灰度化处理(其实有颜色的,是带有颜色的二值化,而颜色 只有两类,例如:红,蓝)。
3.如何实现呢?
说了这么多,只是让大家能够更好地理解阈值二值化操作,还有就是为什么我们选择二值化,她的目的是什么!(不多说了),下面来看一般的阈值二值化函数。
1》典型的全局阈值二值化函数:
代码:
ret,thresh1=cv2.threshold(GrayImage,120,255,cv2.THRESH_BINARY)how to usse?
代码:
import cv2 path=r'cat.png' img=cv2.imread(path) GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret1,thresh1=cv2.threshold(GrayImage,120,255,cv2.THRESH_BINARY) cv2.imshow('method1',thresh1) cv2.waitKey(0)效果图:
原图
二值化后的图像
2》自适应阈值分割函数:
代码:
th3 = cv2.adaptiveThreshold(GrayImage,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,5,11)how to use?
代码:
import cv2 path=r'cat.png' img=cv2.imread(path) GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) threth2=cv2.adaptiveThreshold(GrayImage,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,5,11) cv2.imshow('method2',thhreth2) cv2.waitKey(0)效果图:
原图
自适应阈值分割后的图像
3》大津阈值分割法
这个是由日本学者大津提出,当时轰动一时(夸张点)。这种方法最核心的就是统计像素点灰度值的方差,使图像的灰度值方差达到最小值,这个值就是相对于分割图像的最好分割阈值。(求最小方差所对于的值,就是最好的分割阈值,应该说清楚了吧!)
代码:
ret3,threth3= cv2.threshold(img,0,255,cv2.THRESH_OTSU)how to use?
path=r'cat.png' img=cv2.imread(path) GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret3,thresh3 = cv2.threshold(GrayImage,0,255,cv2.THRESH_OTSU) print(ret3) cv2.imshow('method3',thresh3) cv2.waitKey(0)效果展示:
原图
大津阈值分割后的图
注意: 其中 ret3 就是计算出来的最好阈值(相对来说哦)
我们打印输出一下看看是多少?
4.结束
GAME OVER
如果小伙伴梦有疑问欢迎在评论区留言哦!!!
如果感觉不错的话!你懂得(O(∩_∩)O哈哈~)
欢迎和小伙伴梦一起学习,共同努力,加油!!!



