提取图像的边界,用数字标记不同的目标边界
生活随笔
收集整理的這篇文章主要介紹了
提取图像的边界,用数字标记不同的目标边界
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
<span style="font-size:18px;">I=imread('pillsetc.png');
imshow(I);
I=rgb2gray(I); %彩色圖像灰度化
threshold=graythresh(I); %設(shè)置灰度圖像的最佳閾值
bw=im2bw(I,threshold); %由閾值得到二值圖
figure;
imshow(bw);bw=bwareaopen(bw,30); %利用形態(tài)學(xué)開運(yùn)算去除圖像中小于像素少于30個(gè)的目標(biāo)figure;imshow(bw);se=strel('disk',2); %形成一個(gè)圓的算子bw=imclose(bw,se); %進(jìn)行閉運(yùn)算bw=imfill(bw,'holes'); %填充圖像中的空洞figure;imshow(bw);[B L]=bwboundaries(bw,'noholes'); %尋找圖像的邊界figure;imshow(label2rgb(L,@jet,[0.5 0.5 0.5])); %用彩色圖像顯示圖像的各個(gè)目標(biāo)hold on%%for k=1:length(B)boudary=B{k};plot(boudary(:,2),boudary(:,1),'w','LineWidth',2)end %繪制圖像目標(biāo)的邊界 Bc存儲(chǔ)的是邊界的坐標(biāo)stats=regionprops(L,'Area','Centroid');threshold=0.94;for k=1:length(B)boudary=B{k};delta_sq=diff(boudary).^2; perimeter=sum(sqrt(sum(delta_sq,2))); %計(jì)算邊界圖像的周長(zhǎng)area=stats.Area; %計(jì)算目標(biāo)的面積metric=4*pi*area/perimeter^2;metric_string=sprintf('%2.2f',metric); %保存計(jì)算的結(jié)果if metric>thresholdcentroid=stats(k).Centroid;plot(centroid(1),centroid(2),'ko');end %找到各個(gè)目標(biāo)的質(zhì)心,text(boudary(1,2)-35,boudary(1,1)+13,metric_string,'Color','y','FontSize',14,'FontWeight','bold');end</span>
總結(jié)
以上是生活随笔為你收集整理的提取图像的边界,用数字标记不同的目标边界的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MATLAB 图像函数(第三章) 图像
- 下一篇: 一个简单的人脸检测