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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV--二值化

發(fā)布時間:2023/12/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV--二值化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 圖像的二值化,就是將圖像上的像素點的灰度值設(shè)置為0或255,也就是將整個圖像呈現(xiàn)出明顯的只有黑和白的視覺效果;
  • 二值化一般是提取輪廓的準(zhǔn)備工作;
  • 二值化處理之后,圖像只有0或255,變成黑白圖像。

OpenCV中有全局二值化和局部二值化,全局二值化對光線敏感,局部二值化可以克服光線的影響

全局二值化

double threshold( InputArray src,//src輸入數(shù)組(多通道,8位或32位浮點)。OutputArray dst,//dst輸出數(shù)組的大小和類型與src相同,通道數(shù)相同。double thresh, //二值化閾值,閾值兩端的分別置為0、255double maxval, //與#THRESH_BINARY=0和#THRESH_BINARY_INV=1一起使用的maxval最大值類型。(8位圖像為255)int type //二值化類型);

全局二值化類型(第五個參數(shù)type):

CV_THRESH_BINARY =0, /**值大于閾值置為最大值,否則為0*/CV_THRESH_BINARY_INV =1, /**值大于閾值置為0,否則為最大值*/CV_THRESH_TRUNC =2, /**值大于閾值置為閾值,否則不變*/CV_THRESH_TOZERO =3, /**值大于閾值不變,否則置為0*/CV_THRESH_TOZERO_INV =4, /**值大于閾值置為0,否則不變*/CV_THRESH_OTSU =8, /**<利用大津法自動選擇最優(yōu)閾值;將標(biāo)志與上述CV_THRESH_x值之一組合 */CV_THRESH_TRIANGLE =16 /**采用三角形算法選擇最優(yōu)閾值;將標(biāo)志與上述CV_THRESH_x值之一組合,但不能用CV_THRESH_OTSU*/

大津法和三角形算法都是根據(jù)圖像自動指定最優(yōu)閾值的算法,不需要人工指定閾值,常用OTSU,減少圖像亮度、對比度的影響。

采用大津法自動確定閾值的全局二值化效果:

threshold(inputImg,outImg,100,255,CV_THRESH_OTSU);

局部二值化

void adaptiveThreshold( InputArray src, //src輸入數(shù)組(多通道,8位或32位浮點)。OutputArray dst,//dst輸出數(shù)組的大小和類型與src相同,通道數(shù)相同。double maxValue, //分配給滿足條件的像素的maxValue非零值int adaptiveMethod,//adaptiveMethod要使用的自適應(yīng)閾值算法int thresholdType, //thresholdType閾值類型,必須是#THRESH_BINARY或#THRESH_BINARY_INVint blockSize, //用于計算閾值的像素鄰域的塊大小,只能是單數(shù)double C //);

自適應(yīng)閾值化計算大概過程是為每一個象素點單獨計算的閾值,即每個像素點的閾值都是不同的,就是將該像素點周圍blockSize*blockSize區(qū)域內(nèi)的像素加權(quán)平均,然后減去一個常數(shù)C,從而得到該點的閾值

自適應(yīng)閾值算法(第四個參數(shù)):

CV_ADAPTIVE_THRESH_MEAN_C =0,//為局部鄰域塊的平均值,該算法是先求出塊中的均值,再減去常數(shù)CCV_ADAPTIVE_THRESH_GAUSSIAN_C =1//為局部鄰域塊的高斯加權(quán)和。該算法是在區(qū)域中(x, y)周圍的像素根據(jù)高斯函數(shù)按照他們離中心點的距離進行加權(quán)計算,再減去常數(shù)C。

閾值類型(第五個參數(shù))與全局二值化相同。

采用高斯函數(shù)求加權(quán)平均的局部二值化效果:

adaptiveThreshold(inputImg,outImg,255,CV_ADAPTIVE_THRESH_GAUSSIAN_C,CV_THRESH_BINARY,15,10);//局部二值化處理

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。