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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV 二值化

發布時間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV 二值化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、簡述

圖像二值化(Image Binarization)就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現出明顯的黑白效果的過程。在數字圖像處理中,二值圖像占有非常重要的地位,圖像的二值化使圖像中數據量大為減少,從而能凸顯出目標的輪廓。

二、原理

將256個亮度等級的灰度圖像通過適當的閾值選取而獲得仍然可以反映圖像整體和局部特征的二值化圖像。首先,圖像的二值化有利于圖像的進一步處理,使圖像變得簡單,而且數據量減小,能凸顯出感興趣的目標的輪廓。其次,要進行二值圖像的處理與分析,首先要把灰度圖像二值化,得到二值化圖像。

為了得到理想的二值圖像,一般采用封閉、連通的邊界定義不交疊的區域。所有灰度大于或等于閾值的像素被判定為屬于特定物體,其灰度值為255表示,否則這些像素點被排除在物體區域以外,灰度值為0,表示背景或者例外的物體區域。

三、二值化在OpenCV中的實現

1、固定閾值操作法

double threshold( InputArray src,OutputArray dst,double threshold,double maxval,int type );

其中第五個參數type(閾值類型)使用CV_THRESH_BINARY、CV_THRESH_BINARY_INV、CV_THRESH_TRUNC、CV_THRESH_TOZERO、CV_THRESH_TOZERO_INV其中的一種。具體含義如下圖:

2、自適應閾值操作法

(1)使用 1 中的threshold()方法,但是第五個參數type(閾值類型)使用CV_THRESH_OTSU(大津法)或CV_THRESH_TRIANGLE(三角形算法),這樣該函數就會使用大律法OTSU或三角形算法得到的全局自適應閾值來進行二值化圖片,而第三個參數threshold不再起作用。THRESH_OTSU最適用于雙波峰,THRESH_TRIANGLE最適用于單個波峰,最開始用于醫學分割細胞等。

且這兩種閾值類型常與其他閾值類型配合使用。比如:

threshold( dst, dst, 300 , 255, CV_THRESH_OTSU | CV_THRESH_BINARY_INV);

這種方法對于灰度直方圖呈現二峰特征的圖片處理起來效果很好

(2)使用adaptiveThreshold()方法

void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod,int thresholdType, int blockSize, double C)

三、二值圖像形態學操作

包括腐蝕、膨脹、開運算、閉運算、形態學梯度、頂帽、黑帽等操作。

?

關于圖像二值化的介紹,這里有篇博客介紹的也挺好,以供參考:鏈接

總結

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

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