轮廓跟踪问题
=size(yy);U=zeros(m,n);
for i=1:m
for j=1:n
if yy(i,j)==255
U(i,j)=yy(i,j);
break;
end;
end;
end;
figure,imshow(U);
=size(yy);
V=zeros(m,n);
for i=1:m
for j=n:-1:1
if yy(i,j)==255
V(i,j)=yy(i,j);
break;
end;
end;
end;
figure,imshow(V);
=size(yy);
X=zeros(m,n);
for j=1:n
for i=1:m
if yy(i,j)==255
X(i,j)=yy(i,j);
break;
end;
end;
end;
figure,imshow(X);
=size(yy);
Y=zeros(m,n);
for j=1:n
for i=m:-1:1
if yy(i,j)==255
Y(i,j)=yy(i,j);
break;
end;
end;
end;
figure,imshow(Y);
=size(R);
ZZ=zeros(m,n);
ZZ=U+V+X+Y;
figure,imshow(ZZ);
这个程序提取用CCD 拍的图片的车辆轮廓很好以上是用数码相机拍的 比较大 可也应该能提取出轮廓线来啊
[ 本帖最后由 eight 于 2007-4-29 13:59 编辑 ] 原帖由 程序255 于 2007-4-29 13:51 发表 http://forum.vibunion.com/forum/images/common/back.gif
=size(yy);
U=zeros(m,n);
for i=1:m
for j=1:n
if yy(i,j)==255
U(i,j)=yy(i,j);
break;
end;
end;
end;
figure,imsh ...
没看懂你的程序,建议以后发帖时叙述清楚你的问题。另外,程序运行的结果是不会错的,出错的话肯定是程序没有编写好,所以不要在标题上误导大家。
如果你想轮廓跟踪,则对于二值图象,直接用 bwboundaries 或者 bwtraceboundary 试试。实在不行就用内轮廓跟踪算法
[ 本帖最后由 eight 于 2007-4-29 14:02 编辑 ] 先在windows自带工具“画图”中把你的图片转换为二值(单色)图象,然后用以下语句:
>> A = imread('yy1.jpg');
>> B = bwboundaries(A);
>> C = B{1,1};
>> plot(C(:,2),C(:,1))
>> set(gca,'YDir','reverse')这是得到的结果:
程序没有问题 是分辨率的问题
单相素边缘 我的电脑有的显示不出来 但是放大后 卡年相素值 轮廓就很完整
页:
[1]