matlab代码的问题,能帮我看看哪里有错吗,谢谢。

<p>%颗粒圆度clear;closeall;%%%读取源图像I=imread('999.png');figure;imshow(I);%%%灰度化、取反h=rgb2gr... <p>%颗粒圆度
clear;close all;
%%
%读取源图像
I = imread('999.png');
figure;imshow(I);
%%
%灰度化、取反
h = rgb2gray(I);
figure;imshow(h);%灰度图像
h = imcomplement(h);%取反
figure;imshow(h);
%%
%中值滤波、二值化
h = medfilt2(h,[4,4]);
bw = im2bw(h,graythresh(h));
%%
%消除噪点
se = strel('disk',2);
bw = imclose(bw,se);
figure;imshow(bw);
%%
%填补闭合图形,填充色为白色
bw = imfill(bw,'holes');
%%
%边界寻找
[B,L] = bwboundaries(bw,'noholes');
% 为每个闭合图形设置颜色显示
figure;imshow(label2rgb(L, @jet, [.5 .5 .5]))
hold on
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)
end
%%
%计算面积
stats = regionprops(L,'Area','Centroid');</p><p>threshold = 0.94;</p><p>% 循环处理每个边界,length(B)是闭合图形的个数,即检测到的陶粒对象个数
for k = 1:length(B)</p><p> % 获取边界坐标'
boundary = B{k};</p><p> % 计算周长
delta_sq = diff(boundary).^2;
perimeter = sum(sqrt(sum(delta_sq,2)));</p><p> % 对标记为K的对象获取面积
area = stats(k).Area;</p><p> % 圆度计算公式4*PI*A/P^2
metric = 4*pi*area/perimeter^2;</p><p> % 结果显示
metric_string = sprintf('%2.2f',metric);</p><p> % 用一个黑色小圆圈标记圆度大于threshold = 0.94 的对象
if metric > threshold
centroid = stats(k).Centroid;
plot(centroid(1),centroid(2),'ko');
end
%设置显示字体
text(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','y',...
'FontSize',14,'FontWeight','bold');</p><p>end</p><p>title(['圆度识别结果,越圆越接近1,']);</p><p> </p>
只要能运行出来就行了,大佬们帮帮忙啊!!!
展开
 我来答
lhmhz
高粉答主

2018-10-28 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17047

向TA提问 私信TA
展开全部

给出的matlab代码基本能运行。部分作了调整。其运行最后的效果如下(图像为一个已加工过的零件)。

更多追问追答
追问
可以麻烦发一下代码吗,可以运行就采纳了。
追答
这里己发不了。程序不是己经演示过了。
东莞大凡
2024-08-07 广告
作为东莞市大凡光学科技有限公司的一员,我们深知Matlab圆点标定板在相机标定中的重要性。该标定板通过均匀分布的圆点,帮助精确计算相机参数,优化成像效果。Matlab强大的编程功能,使得我们能够灵活设计标定板,调整圆点大小、数量和分布,以满... 点击进入详情页
本回答由东莞大凡提供
heart阿飞55
2018-10-28 · TA获得超过1086个赞
知道大有可为答主
回答量:3030
采纳率:82%
帮助的人:587万
展开全部
问题:new_rr没有定义,这里不知道你要干什么
if isempty(nn),new_r=[new_rr(i)];end
后面还要用new_r,这里new_r应该得出是一个向量。

你可以把你求解圆面积的思路说一说。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式