200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > matlab计算图像周长 图像处理——周长 面积计算(Matlab).doc

matlab计算图像周长 图像处理——周长 面积计算(Matlab).doc

时间:2020-07-02 14:48:46

相关推荐

matlab计算图像周长 图像处理——周长 面积计算(Matlab).doc

题目:面积与周长的计算

检测下图细胞数量,并计算面积与周长的比。

处理过程

首先将图像变换为灰度图像,并取其边缘二值图像。

然后分别对边缘二值掩膜进行膨胀、填充空洞、清除边缘。

最后对处理后的二值图像的连通区域进行检测,求其连通区域个数、周长和面积,并以此求出面积与周长的比。

处理结果

最后得到细胞数量a=88,面积m=24333,周长z=4956.4,面积与周长的比b=4.9094。

程序清单

clc;clear all

I=imread('7.bmp');

figure;imshow(I);

I2=rgb2gray(I);

[junk, threshold] = edge(I2,'sobel');

fudgeFactor=.5;

BWs=edge(I2,'sobel',threshold*fudgeFactor);

figure;

subplot(221),imshow(BWs),title('边缘梯度二值掩膜');

se90=strel('line',3,90);

se0=strel('line',3,0);

BWsdil=imdilate(BWs,[se90 se0]);

subplot(222);imshow(BWsdil),title('膨胀梯度掩膜');

BWdfill=imfill(BWsdil,'holes');

subplot(223);imshow(BWdfill);title('填充空洞后的二值图像');

BWnobord=imclearborder(BWdfill,4);

subplot(224);imshow(BWnobord),title('清除边缘的二值图像');

k1=bwlabel(BWnobord);

I5=~BWnobord;

figure;imshow(I5);

a=max(max(k1))

[labeled,numObjects]=bwlabel(BWnobord,4);

celldata=regionprops(labeled,'all');

for i=1:1:a

celldata(i).Area

celldata(i).Perimeter;

end

allcellm=[celldata.Area];

allcellz=[celldata.Perimeter];

m=sum(allcellm)

z=sum(allcellz)

b=m/z

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。