在图像处理的领域中,图像的阈值处理一般使得图像的像素值更单一、图像更简单。前提输入进来的图片是灰度图,那么在之后的处理当中,将像素点分开就会更加明显。可以将整幅图像分成了非黑即白的二值图像了。
Opencv中就有cv2.threshold() 可以做阈值处理。
这个函数有四个参数,待处理的图像;分类的阈值;超过阈值的像素全部赋给的值;做处理的方法。
这个函数的返回值有两个,第一个r是得到的阈值的值,第二个处理后的图像。(只是不同为什么最后要返回阈值,明明入参已经知道阈值了,这样不是多此一举吗?)
- cv2.THRESH_BINARY(黑白二值)
- cv2.THRESH_BINARY_INV(黑白二值反转)
- cv2.THRESH_TRUNC (得到的图像为多像素值)
- cv2.THRESH_TOZERO (渐变至1)
- cv2.THRESH_TOZERO_INV (渐变至0)
import cv2
img = cv2.imread('test1.jpg',0) #0表示灰度图像, 1表示彩色图像
ret,thresh1 = cv2.threshold(img,1,255,cv2.THRESH_BINARY)
ret,thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)
ret,thresh3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
ret,thresh4 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO)
ret,thresh5 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)
以上内容如有错误,欢迎指出。谢谢!