
请问matlab中得到了轮廓线以后怎么得到其坐标?
我现在已经使用rgb2gray、imopen和edge将图像二值化并且得到了轮廓(如下图),现在我想要直接得到轮廓线的坐标,请问应该怎么办?以左下角为(0,0),得到上面...
我现在已经使用rgb2gray、imopen和edge将图像二值化并且得到了轮廓(如下图),现在我想要直接得到轮廓线的坐标,请问应该怎么办?
以左下角为(0,0),得到上面那一条线的坐标,如果得到全部坐标太复杂的话可以设x每隔5得一个坐标(主要就是想要得到y的值)
听说要使用for语句循环?但是我不太懂
我纯粹就是个新手,前面得轮廓什么的还都是自己一个一个上网查出来的,希望各位大神不吝赐教,尽量说的详细简单易懂一点
谢谢 展开
以左下角为(0,0),得到上面那一条线的坐标,如果得到全部坐标太复杂的话可以设x每隔5得一个坐标(主要就是想要得到y的值)
听说要使用for语句循环?但是我不太懂
我纯粹就是个新手,前面得轮廓什么的还都是自己一个一个上网查出来的,希望各位大神不吝赐教,尽量说的详细简单易懂一点
谢谢 展开
2个回答
展开全部
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]); % 注意:显示图片的坐标与现实数据的坐标的不同。
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]); % 注意:显示图片的坐标与现实数据的坐标的不同。
引用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]); % 注意:显示图片的坐标与现实数据的坐标的不同。
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]); % 注意:显示图片的坐标与现实数据的坐标的不同。
展开全部
你这个程序不对吧? 运行了会报错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询