怎么用MATLAB测圆形区域的面积周长 100

现在的问题是转换成灰度图后圆环和中心圆部分颜色不一样,而现在要测的是整个圆的面积... 现在的问题是转换成灰度图后圆环和中心圆部分颜色不一样,而现在要测的是整个圆的面积 展开
 我来答
百度网友da67781
2014-07-25
知道答主
回答量:41
采纳率:0%
帮助的人:12.7万
展开全部
下面这个函数主要是求感兴趣区域的物理特征:周长、面积、宽、高等。还是用的比较多的,贴出来分享下。
传入的图像必须是二值的哦

function [L,A,H,W]=canshu(I)

% 注意必须保证二值图像中,细胞区域为白色区域或者像素点值为“1”
[x,y]=size(I);
BW = bwperim(I,8); % 检测区域的边缘跟踪,用于计算周长
%检测垂直方向连读的周长像素点%
P1=0;
P2=0;
Ny=0; % 记录垂直方向连续周长像素点的个数
for i=1:x
for j=1:y
if (BW(i,j)>0)
P2=j;
if ((P2-P1)==1) % 判断是否为垂直方向连续的周长像素点
Ny=Ny+1;
end
P1=P2;
end
end
end
%检测水平方向连读的周长像素点%
P1=0;
P2=0;
Nx=0; % 记录水平方向连续周长像素点的个数
for j=1:y
for i=1:x
if (BW(i,j)>0)
P2=i;
if ((P2-P1)==1) % 判断是否为水平方向连续的周长像素点
Nx=Nx+1;
end
P1=P2;
end
end
end

SN=sum(sum(BW)); % 计算周长像素点的总数
Nd=SN-Nx-Ny; % 计算奇数码的链码数目
H=max(sum(I)); % 计算细胞的高度
W=max(sum(I')); % 图象I经矩阵转置后,计算宽度
L=sqrt(2)*Nd+Nx+Ny; % 计算周长

A=bwarea(I); % 计算面积
追问
这个函数我知道。关键我的图片里那个圆环和中间那部分二值化之后颜色不一样。不能测出整个圆的面积啊
追答
那你试试个算个,再加起来   或者该为一个颜色 再计算试试,,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式