6.2 threshold函數實現閾值分割

 

 

 

前面介紹了五種閾值分割的方法,現在就是使用thrershold函數進行實現。

 

retval, dst = cv2.threshold(src, thresh, maxval, type)        //retval,閾值。一般thresh指定的是多少,trtval就是多少。

                                                                                          //dst,結果圖像。

                                                                                          //src,源圖像。

                                                                                          //thresh,閾值分割的時候閾值是多少。

                                                                                          //maxval, 最大值。

                                                                                          //type,類型。哪種類型分割。

 

 

一、二進制閾值化

比較暗的變黑色,比較亮的變白色。   

 

 

 

例:

'''
二進制閾值化
'''

import cv2

image = cv2.imread("image\\lena512.bmp",cv2.IMREAD_UNCHANGED)


r,b = cv2.threshold(image,128,255,cv2.THRESH_BINARY)            #二進制閾值化

 

cv2.imshow("image", image)
cv2.imshow("result", b)

 

cv2.waitKey()
cv2.destroyAllWindows()

結果:

 

變成黑白的。比較暗的變黑色,比較亮的變白色。

 

 

二、反二進制閾值化

比較暗的變白色,比較亮的變黑色。

 

 

例:

'''
反二進制閾值化
'''

import cv2

 

image = cv2.imread("image\\lena512.bmp",cv2.IMREAD_UNCHANGED)


r,b = cv2.threshold(image,128,255,cv2.THRESH_BINARY_INV)            #反二進制閾值化

 

cv2.imshow("image", image)
cv2.imshow("result", b)

cv2.waitKey()
cv2.destroyAllWindows()

結果:

變成黑白的。比較暗的變白色,比較亮的變黑色。

 

 

三、截斷閾值化

比較暗的顏色沒有變。比較亮的顏色都變成了127。

 

 

例:

'''
截斷閾值化
'''

import cv2

 

image = cv2.imread("image\\lena512.bmp",cv2.IMREAD_UNCHANGED)


r,b = cv2.threshold(image,128,255,cv2.THRESH_TRUNC)            #截斷閾值化

 

cv2.imshow("image", image)
cv2.imshow("result", b)

cv2.waitKey()
cv2.destroyAllWindows()

 

結果:

 

可以看到,比較亮的顏色都變成了127。比較暗的顏色沒有變。

 

 

 

四、閾值化爲0

比較亮的不變,比較暗的處理爲黑色。

 

 

例:

'''
閾值化爲0
'''

import cv2

 

image = cv2.imread("image\\lena512.bmp",cv2.IMREAD_UNCHANGED)


r,b = cv2.threshold(image,128,255,cv2.THRESH_TOZERO)            #閾值化爲0

 

cv2.imshow("image", image)
cv2.imshow("result", b)

cv2.waitKey()
cv2.destroyAllWindows()

結果:

 

比較亮的不變,比較暗的處理爲黑色。

 

 

五、反閾值化爲0

比較暗的不變,比較亮的處理成黑色。

 

 

例:

'''
反閾值化爲0
'''

import cv2

 

image = cv2.imread("image\\lena512.bmp",cv2.IMREAD_UNCHANGED)


r,b = cv2.threshold(image,128,255,cv2.THRESH_TOZERO_INV)            #反閾值化爲0

 

cv2.imshow("image", image)
cv2.imshow("result", b)

cv2.waitKey()
cv2.destroyAllWindows()

 

結果:

 

比較亮的處理成黑色,比較暗的不變。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章