日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

OpenCV 图像二值化 threshold

發布時間:2024/6/21 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 OpenCV 图像二值化 threshold 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:什么是二值圖像

彩色圖像:三個通道0-255,0-255,0-255,所以可以有2^24位空間

灰度圖像:一個通道0-255,所以有256種顏色

二值圖像:只有兩種顏色,黑和白,1白色,0黑色

二:圖像二值化

(一)先獲取閾值

(二)根據閾值去二值化圖像

(三)OpenCV中的二值化方法

四)補充閾值類型

原灰度圖像的像素值

1.THRESH_BINARY:過門限的值為最大值,其他值為0

2.THRESH_BINARY_INV:過門限的值為0,其他值為最大值

3.THRESH_TRUNC:過門限的值為門限值,其他值不變

4.THRESH_TOZERO:過門限的值不變,其他設置為0

5.THRESH_TOZERO_INV:過門限的值為0,其他不變

三:代碼實現全局閾值

 cv.threshold( src, thresh, maxval, type[, dst] ) 

參數說明:

src:原圖像。

dst:結果圖像。

thresh:當前閾值。

maxVal:最大閾值,一般為255.

thresholdType:閾值類型,主要有下面幾種:

 1 enum ThresholdTypes {
 2 THRESH_BINARY = 0,
 3 THRESH_BINARY_INV = 1,
 4 THRESH_TRUNC = 2,
 5 THRESH_TOZERO = 3,
 6 THRESH_TOZERO_INV = 4,
 7 THRESH_MASK = 7,
 8 THRESH_OTSU = 8,
 9 THRESH_TRIANGLE = 16
10 };

(一)全局閾值使用THRESH_OTSU大津法

1    def threshold_demo(image):
2     gray = cv.cvtColor(image,cv.COLOR_RGB2GRAY)   #要二值化圖像,要先進行灰度化處理
3     ret, binary = cv.threshold(gray,0,255,cv.THRESH_BINARY | cv.THRESH_OTSU)
4     print("threshold value: %s"%ret)  #打印閾值,前面先進行了灰度處理0-255,我們使用該閾值進行處理,低于該閾值的圖像部分全為黑,高于該閾值則為白色
5     cv.imshow("binary",binary)  #顯示二值化圖像 

threshold value: 140.0  #獲取的閾值是140

(二)全局閾值使用THRESH_TRIANGLE(三角形算法)

ret, binary = cv.threshold(gray,0,255,cv.THRESH_BINARY | cv.THRESH_TRIANGLE)

threshold value: 67.0

(三)上面使用大津法和三角形算法都是自動去獲取閾值,下面我們自己直接指定閾值

(1)THRESH_BINARY_INV大于閾值的都為0

ret, binary = cv.threshold(gray,127,255,cv.THRESH_BINARY_INV)

threshold value: 127.0

(2)THRESH_TRUNC截斷大于127的值都為127

ret, binary = cv.threshold(gray,127,255,cv.THRESH_TRUNC)

(3)THRESH_TOZERO小于閾值的都為0和(1)相反

ret, binary = cv.threshold(gray,127,255,cv.THRESH_TOZERO)

總結

以上是生活随笔為你收集整理的OpenCV 图像二值化 threshold的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。