图像阈值函数为:
ret,dst = cv2.threshold(src,thresh,maxval,type)
参数说明:
ret:设置的阈值,数值等于thresh
dst:输出图
src:输入图,只能输入单通道图像,通常来说为灰度图
thresh:阈值
maxval:最大值,当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值
type:二值化操作的类型,包含以下5种类型:cv2.THRESH_BINARY;cv2.THRESH_BINARY_INV;cv2.THRESH_TRUNC;cv2.THRESH_TOZERO;cv2.THRESH_TOZERO_INV
类型说明
1.cv2.THRESH_BINARY表示阈值的二值化操作,超过阈值部分取maxval(最大值),小于阈值部分取0
2. cv2.THRESH_BINARY_INV表示cv2.THRESH_BINARY的反转,大于阈值部分取0,小于阈值部分取maxval(最大值)
3. cv2.THRESH_TRUNC表示进行截断操作,大于阈值部分设为阈值,小于阈值部分不变
4. cv2.THRESH_TOZERO表示进行化零操作,大于阈值部分不变,小于阈值部分取0
5. cv2.THRESH_TOZERO_INV 表示cv2.THRESH_TOZERO的反转,大于阈值部分取0,小于阈值部分不变
下面是这5种类型的使用例子:
ret, thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
ret, thresh2 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV)
ret, thresh3 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TRUNC)
ret, thresh4 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO)
ret, thresh5 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO_INV)
因为ret一般用不到,一般我们只取返回的第二个参数即可
dst = cv2.threshold(src,thresh,maxval,type[1]
例子为
thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)[1]
thresh2 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV)[1]
thresh3 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TRUNC)[1]
thresh4 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO)[1]
thresh5 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO_INV)[1]