通信人家园

标题: Matlab报错”Index exceeds matrix dimensions“,为什么会这样?  [查看完整版帖子] [打印本页]

时间:  2010-4-25 22:51
作者: Telemark     标题: Matlab报错”Index exceeds matrix dimensions“,为什么会这样?

已定位出错误出现在如下程序段:
[height,width] =size(IM3); % height求出是612,width为816
for i =2:width-1
    for j =2:height-1
        ary =IM3(i-1,j)+IM3(i+1,j)+IM3(i,j-1)+IM3(i,j+1); % IM3为二值图像
        if((IM3(i,j) ==0) &(ary>=2))
            IM3(i,j) =1;
            continue;
        end
        if(IM3(i,j) ==1 &ary ==0)
            IM3(i,j) =0;
        end
    end
end
figure
imshow(IM3);title('候选区矩形化');
该程序要实现的功能是将连通区域矩形化,但运行到这里就出现报警:Index exceeds matrix dimensions.
为什么会这样?求助!!!!!
时间:  2010-4-25 22:57
作者: Telemark

该算法是:
如果IM3(i, j)为黑点,而且其4-邻域中有至少任意两个像素为白点,则令其为白点;
如果IM3(i, j)为白点,而且其4-邻域中所有的像素为黑点,则令其为黑点。
程序运行报错,是不是我哪里错了?
时间:  2010-4-28 20:30
作者: 微光贝贝

你单步调试,看那个矩阵边界越界了~
时间:  2010-4-28 21:20
作者: 微光贝贝

谢谢评分,LZ不介意可以把程序发给我~




通信人家园 (https://www.txrjy.com/) Powered by C114