matlab图像处理的编程
1)按行扫描边缘二值图像,若该行像素点灰度值全为0,则检测下一行,否则执行下一步。2)若检测到某像素点灰度值为255,则判断其右边像素点灰度值是否为255。若是,则跳过该...
1)按行扫描边缘二值图像,若该行像素点灰度值全为0,则检测下一行,否则执行下一步。 2)若检测到某像素点灰度值为255,则判断其右边像素点灰度值是否为255。若是,则跳过该行不检测,继续检测下一行;否则,执行下一步。 3)已经检测到左边缘点的坐标,继续该行的检测,扫描右边缘点。如果检测到,则计算两边缘点问的距离并保存,继续检测下一行;否则直接继续检测下一行。(用matlab编程上面的句子)
展开
2个回答
展开全部
同学既然你已经把算法描述出来了,其实你离写出程序就不远了。为什么不自己尝试一下呢?如果有苦难的话,可以话流程图来辅助。这里我给你一个示例,但是希望你以后自己动手。
[xlim ylim]=size(I);%I是你的灰度图像
red=[];
for i=1:xlim
left=0;
right=0;
for j=1:ylim
if I(i,j)==255&&I(i,j+1)~=255
left=j
end
if j<ylim&&I(i,j)~=255&&I(i,j+1)==255%你对右边缘点没有定义,我自己理解为改点不是255且右边的像素是255.
right=j;
end
if I(i,j)==255&&I(i,j+1)==255
break;
end
end
red(i)=right-left;
end
最后red这个向量里面存的是每一行的左右边缘间距。如果那些没有边缘的,则会得到0。我是按照你的逻辑来写的。但是我感觉你的流程是有问题的。如果你的图片与你的逻辑不是很符合的话,应该是出不来结果的。我也是盲编,可能有错误。你在调试的过程中自己把握吧。
图像处理需要自己动手,我还是建议你修改一下你的编程逻辑,然后自己动手编写程序。如果有问题,可以私信我。我愿意跟你交流。
[xlim ylim]=size(I);%I是你的灰度图像
red=[];
for i=1:xlim
left=0;
right=0;
for j=1:ylim
if I(i,j)==255&&I(i,j+1)~=255
left=j
end
if j<ylim&&I(i,j)~=255&&I(i,j+1)==255%你对右边缘点没有定义,我自己理解为改点不是255且右边的像素是255.
right=j;
end
if I(i,j)==255&&I(i,j+1)==255
break;
end
end
red(i)=right-left;
end
最后red这个向量里面存的是每一行的左右边缘间距。如果那些没有边缘的,则会得到0。我是按照你的逻辑来写的。但是我感觉你的流程是有问题的。如果你的图片与你的逻辑不是很符合的话,应该是出不来结果的。我也是盲编,可能有错误。你在调试的过程中自己把握吧。
图像处理需要自己动手,我还是建议你修改一下你的编程逻辑,然后自己动手编写程序。如果有问题,可以私信我。我愿意跟你交流。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
东莞大凡
2024-11-19 广告
2024-11-19 广告
作为东莞市大凡光学科技有限公司的工作人员,对于halcon标定板有所了解。Halcon标定板是高精度相机标定的关键工具,通常采用实心圆点或方格作为标志点。我们公司提供的halcon标定板,具有高精度、稳定可靠的特点,适用于机器视觉领域的各种...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询