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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Matlab中bwmorph函数的使用

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab中bwmorph函数的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Matlab中bwmorph函數的使用


Matlab中提供了一個基于形態學的處理函數,即以膨脹、腐蝕等操作為基礎,其語法格式如下:

bw2=bwmorph(bw1,operation,n);

其中bw1為輸入的二值圖像;operation是可以進行的操作;而n為執行該操作的次數;bw2為原圖像經過n次操作后得到的結果圖像。

參數operation的常用取值:
open:對圖像做開運算
close:對圖像做閉運算
dilate: 對圖像做膨脹處理
erode:對圖像進行腐蝕處理
thin:對圖像進行細化操作
skel:提取圖像骨架
spur:消除尖刺

bwmorph應用示例,統計硬幣個數:

clc;
clear;
close all;
A=imread('d:\Temp\hw.png');
A=rgb2gray(A);
figure,imshow(A),title('灰值圖像');thresh=graythresh(A);
B=im2bw(A,thresh);
figure,imshow(B),title('二值圖像');C=bwmorph(B,'dilate',3);
figure,imshow(C),title('膨脹');
D=bwmorph(C,'erode',3);
figure,imshow(D),title('腐蝕');[L,num]=bwlabel(D,8);
stats=regionprops(L);
t=0;
label=1;
temp=zeros(num,2); %標記矩陣
for i=1:num    %利用標記算法得到面積近似個體的個數各有多少個if stats(i).Area>300  %忽略雜質連通域t=t+1;temp(t,1)=stats(i).Area;if(t==1)temp(t,2)=label;endhasGot=0;for k=1:t-1if(abs(stats(i).Area-temp(k,1))<300)hasGot=1;temp(t,2)=temp(k,2);break;endendif(hasGot==0)temp(t,2)=label; label=label+1;endend
enda=0;
b=0;
c=0;
d=0;
for i=1:num   %提取連通矩陣中的數據if(temp(i,2)~=0)switch temp(i,2)case 1a=a+1;case 2 b=b+1;case 3c=c+1;case 4d=d+1;endend
end
fprintf('%d個一元的 %d個一毛的 %d個瓶蓋 %d個五毛的\n',a,b,c,d);

`原始圖像

經過灰度化、二值化、膨脹、腐蝕的圖像

利用bwlabel和regionprops函數,忽略面積小于300像素點的雜志連通域影響,將面積近似的連通域歸為一類,最終得到四種不同連通域,個數分別為10,10,5,5。對應10個一元硬幣,10個一角硬幣,5個瓶蓋,5個五角硬幣。

總結

以上是生活随笔為你收集整理的Matlab中bwmorph函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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