阈值处理
就是剔除图像内像数值高于或低于一定值的像素点。可以获得一个二值图,有效的实现的前景和背景的分离。。
OpenCV 提供了函数 cv2.threshold()和函数 cv2.adaptiveThreshold(),用于实现阈值处理。
threshold函数
retval, dst = cv2.threshold( src, thresh, maxval, type )
- retval 代表返回的阈值
- thresh 设置的阈值
- maxval 代表当type参数为THRESH_BINARY 或者 THRESH_BINARY_INY 类型时,需要设定的最大值
- type 代表阈值分割的类型
二值化阈值处理(cv2.THRESH_BINARY)
就是处理成二值图。灰度值大于阈值设为最大值,小于就是0.,,虽然都是灰度图,也可以看看彩图啊。
img=cv2.imread('5.jpg',0)
t,rst=cv2.threshold(img,127,255,cv2.THRESH_BINARY) # 8位图像最大值就是255,阈值设置为127
cv2.imshow("img",img)
cv2.imshow("rst",rst)
cv2.waitKey()
cv2.destroyAllWindows()
反二值化阈值处理
就是跟上面倒过来。。
img=cv2.imread('5.jpg',0)
t,rst=cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)
cv2.imshow("img",img)
cv2.imshow("rst",rst)
cv2.waitKey()
cv2.destroyAllWindows()
截断阈值化处理(cv2.THRESH_TRUNC)
将大于阈值的像素设为阈值,小于或等于阈值的不变
img=cv2.imread('5.jpg',0)
t,rst=cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
cv2.imshow("img"