1,阈值(threshold):是我们认为设定的一个像素值。取值在(0~255)
二进制阈值化:(threshold binary)(结果值二值不一定是0-1)
- 首先要选择一个特定的阈值a
- 新的阈值识别规则为
- 大于等于阈值的像素点的灰度值设为最大值(例如8位灰度值的最大值255)
- 灰度值小于阈值的像素的灰度值设为0
反二进制阈值化:(threshold binary,inverted)
- 与二进制阈值化值的对应方式正好相反。其他相同。
截断阈值化:
- 首先选择一个阈值
- 图像中像素值比阈值大的重新设定为阈值
- 图像中像素值比阈值小的不变
反阈值化为0:(threshold to zero,inverted)
- 先选定一个阈值
- 把大于等于阈值的像素点变为0
- 把小于阈值的的像素点保持不变
阈值化为0:(与反阈值化为0相反)
- 先选定一个阈值
- 把大于等于阈值的像素点保持不变
- 把小于阈值的的像素点化为0
附代码如下:
#threshold函数
#retval,dst=cv2.threshold(src,thresh,maxval,type)
#retral————返回阈值=thresh;dst————图片处理的结果;
# src——————源图像;thresh————阈值;maxval——————阈值分割后的最大值;
# type————进行那种类型的阈值分割
#注意原始图像的类型,必须是8位单通道图像,彩色图像无意义
import cv2
a=cv2.imread("image\\lena512.bmp",cv2.IMREAD_UNCHANGED)
#(反)二进制阈值化
r,b=cv2.threshold(a,127,255,cv2.THRESH_BINARY_INV)
l,c=cv2.threshold(a,127,255,cv2.THRESH_BINARY)
cv2.imshow("a",a)
cv2.imshow("b",b)
cv2.imshow("c",c)
print(r)
cv2.waitKey()
cv2.destroyAllWindows()
#截断阈值化(只是后面的type变化)
r,b=cv2.threshold(a,127,255,cv2.THRESH_TRUNC)
cv2.imshow("a",a)
cv2.imshow("b",b)
print(r)
cv2.waitKey()
cv2.destroyAllWindows()
#(反)阈值化为0
r,b=cv2.threshold(a,127,255,cv2.THRESH_TOZERO_INV)
l,c=cv2.threshold(a,127,255,cv2.THRESH_TOZERO)
cv2.imshow("a",a)
cv2.imshow("b",b)
cv2.imshow("c",c)
print(r)
cv2.waitKey()
cv2.destroyAllWindows()
#threshold函数
#retval,dst=cv2.threshold(src,thresh,maxval,type)
#retral————返回阈值=thresh;dst————图片处理的结果;
# src——————源图像;thresh————阈值;maxval——————阈值分割后的最大值;
# type————进行那种类型的阈值分割
#注意原始图像的类型,必须是8位单通道图像,彩色图像无意义
import cv2
a=cv2.imread("image\\lena512.bmp",cv2.IMREAD_UNCHANGED)
#(反)二进制阈值化
r,b=cv2.threshold(a,127,255,cv2.THRESH_BINARY_INV)
l,c=cv2.threshold(a,127,255,cv2.THRESH_BINARY)
cv2.imshow("a",a)
cv2.imshow("b",b)
cv2.imshow("c",c)
print(r)
cv2.waitKey()
cv2.destroyAllWindows()
#截断阈值化(只是后面的type变化)
r,b=cv2.threshold(a,127,255,cv2.THRESH_TRUNC)
cv2.imshow("a",a)
cv2.imshow("b",b)
print(r)
cv2.waitKey()
cv2.destroyAllWindows()
#(反)阈值化为0
r,b=cv2.threshold(a,127,255,cv2.THRESH_TOZERO_INV)
l,c=cv2.threshold(a,127,255,cv2.THRESH_TOZERO)
cv2.imshow("a",a)
cv2.imshow("b",b)
cv2.imshow("c",c)
print(r)
cv2.waitKey()
cv2.destroyAllWindows()