lww_tnt 发表于 2008-1-20 21:27

边缘检测的程序运行速度如何改进

X=imread('cameraman.tif');
%load nbarb1;
image(X)
% Image coding.
nbcol = size(X,1)
cod_X = wcodemat(X,nbcol)
SIZE=nbcol
= swt2(X,1,'haar');
X=chd
edge_array=zeros(SIZE,SIZE);
for i=1:SIZE
    one=1
    for j=1:SIZE-2
      if (((X(i,j+1)-X(i,j))>0&(X(i,j+2)-X(i,j+1))<0)&(two-one>10)|...
         ((X(i,j+1)-X(i,j))<0&(X(i,j+2)-X(i,j+1))>0&(two-one>10)))
            two=j+1
                if two-one>10
                edge_array(i,j+1)=255
                one=two
                end
      end
    end
end
figure
imshow(edge_array)         

先不说边缘检测效果如何,单是速度就很让人头疼了,大侠帮忙啊。

[ 本帖最后由 eight 于 2008-1-22 20:39 编辑 ]

w89986581 发表于 2008-1-20 21:32

呵呵,two没有初值啊?

lww_tnt 发表于 2008-1-21 10:50

哦,谢谢,是我的程序赋值有毛病,谢谢指点。

w89986581 发表于 2008-1-21 14:19

请描述一下你要实现的功能,具体一些,不要看你的程序,效率很低。

eight 发表于 2008-1-22 20:40

请在置顶贴中找热点问题讨论帖,然后参考一下矢量化技巧编程的帖子自己修改
页: [1]
查看完整版本: 边缘检测的程序运行速度如何改进