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()