opencv2函數學習之threshold:實現圖像閾值化


在opencv2中,threshold函數可以進行閾值化操作。

double threshold( const Mat& src, Mat& dst, double thresh,double maxVal, int thresholdType );

參數:

src:原圖像。

dst:結果圖像。

thresh:當前閾值。

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

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

 

enum { THRESH_BINARY=0, THRESH_BINARY_INV=1,
THRESH_TRUNC=2, THRESH_TOZERO=3,
THRESH_TOZERO_INV=4};

       THRESH BINARY:二進制閾值,。在運用該閾值類型的時候,先要選定一個特定的閾值量,比如:125,這樣,新的閾值產生規則可以解釋為大於125的像素點的灰度值設定為最大值255,灰度值小於125的像素點的灰度值設定為0。  (value>threshold?255:0)

       THRESH BINARY INV:反二進制閾值。設定一個初始閾值如125,則大於125的設定為0,而小於該閾值的設定為255。  (value>threshold?0:255)

       THRESH TRUNC:截斷閾值。同樣首先需要選定一個閾值,圖像中大於該閾值的像素點被設定為該閾值,小於該閾值的保持不變。(例如:閾值選取為125,那小於125的閾值不改變,大於125的灰度值(230)的像素點就設定為該閾值)。   (value>threshold?threshold:value)

        THRESH TOZERO:閾值化為0。先選定一個閾值,像素點的灰度值大於該閾值的不進行任何改變;像素點的灰度值小於該閾值的,其灰度值全部變為0。   (value>threshold?value:0)

        THRESH TOZERO INV:反閾值化為0。原理類似於0閾值,但是在對圖像做處理的時候相反,即:像素點的灰度值小於該閾值的不進行任何改變,而大於該閾值的部分,其灰度值全部變為0。  (value>threshold?0:value)

 

例:

threshold( src,dst,125,255,0);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM