请问matlab中得到了轮廓线以后怎么得到其坐标?

我现在已经使用rgb2gray、imopen和edge将图像二值化并且得到了轮廓(如下图),现在我想要直接得到轮廓线的坐标,请问应该怎么办?以左下角为(0,0),得到上面... 我现在已经使用rgb2gray、imopen和edge将图像二值化并且得到了轮廓(如下图),现在我想要直接得到轮廓线的坐标,请问应该怎么办?
以左下角为(0,0),得到上面那一条线的坐标,如果得到全部坐标太复杂的话可以设x每隔5得一个坐标(主要就是想要得到y的值)

听说要使用for语句循环?但是我不太懂
我纯粹就是个新手,前面得轮廓什么的还都是自己一个一个上网查出来的,希望各位大神不吝赐教,尽量说的详细简单易懂一点
谢谢
展开
 我来答
qingningleyun
推荐于2016-07-20 · TA获得超过5854个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:3067万
展开全部
p = imread('999.png');
gray = rgb2gray(p);
level = graythresh(gray);
BW = im2bw(gray,level);
[m,n] = size(BW);
x = []; y = [];
for k = 1:n
ic = find(BW(:,k)==1);
if ~isempty(ic)
x = [x k];
while length(ic)<3
ic = [ic;nan];
end;
y = [y ic];
end;
end;
plot(x,y,'r-');
axis([1 n 1 m]); % 注意:显示图片的坐标与现实数据的坐标的不同。
张腾sky
2018-04-12
知道答主
回答量:1
采纳率:0%
帮助的人:889
引用qingningleyun的回答:
p = imread('999.png');
gray = rgb2gray(p);
level = graythresh(gray);
BW = im2bw(gray,level);
[m,n] = size(BW);
x = []; y = [];
for k = 1:n
ic = find(BW(:,k)==1);
if ~isempty(ic)
x = [x k];
while length(ic)<3
ic = [ic;nan];
end;
y = [y ic];
end;
end;
plot(x,y,'r-');
axis([1 n 1 m]); % 注意:显示图片的坐标与现实数据的坐标的不同。
展开全部
你这个程序不对吧? 运行了会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式