一、概述
bwareaopen是Matlab中的圖像處理函數,可以尋找二值圖像中面積小於設定值的對象並進行刪除,保留面積大於設定值的對象。此函數常用於去除二值圖像中的噪聲點、極小物體等。
二、函數語法
BW2 = bwareaopen(BW, P)
其中,BW為輸入的二值圖像,P為設定的面積閾值。
BW2為輸出的處理後的二值圖像。
三、函數參數解析
1. BW
BW表示輸入的二值圖像,即要進行處理的圖像,為邏輯矩陣。其像素值為0或1,分別表示黑色和白色的像素。
2. P
P表示設定的面積閾值,一個像素的面積為1。此參數為一個正整數,表示面積的最小值。
3. BW2
BW2為輸出的處理後的二值圖像,與輸入的二值圖像大小相同。處理後,面積小於設定值的對象被刪除,面積大於等於設定值的對象被保留。
四、函數應用舉例
1. 像素數減少
代碼示例:
%讀取圖像 img = imread('example.png'); %將圖像轉為二值圖像 bw = imbinarize(img); %設定面積閾值 P = 50; %去除面積小於50的像素點 bw2 = bwareaopen(bw,P); %顯示處理前後的差異 subplot(1,2,1), imshow(bw), title('處理前'); subplot(1,2,2), imshow(bw2), title('處理後');
運行結果如圖所示:

可以看到,在經過面積過濾後,小於50像素的噪聲點已經被刪除,圖像清晰明了。
2. 目標分離
代碼示例:
%讀取圖像 img = imread('example2.png'); %將圖像轉為二值圖像 bw = imbinarize(img); %設定面積閾值 P = 100; %刪除面積小於100的對象 bw2 = bwareaopen(bw,P); %標記不同的目標 L = bwlabel(bw2); %顯示標記後的圖像 imshow(label2rgb(L))
運行結果如圖所示:

可以看到,在去除面積小於100像素後,原圖的目標被分離出來了,並被標記不同的顏色。
五、小結
bwareaopen是Matlab中處理二值圖像常用的函數,可以去除面積小於設定閾值的噪聲點和小目標,保留面積大於等於設定閾值的目標。通過調整閾值,可以實現對圖像中目標的選擇和過濾。因此,掌握bwareaopen函數的使用方法和應用場景,有助於提高Matlab圖像處理的效率和精度。
原創文章,作者:YPQHM,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/332742.html