■■MatLab小程序:数组运算哪里有错?

来源:百度知道 编辑:UC知道 时间:2024/05/16 11:11:25
ImInBuf=imread('F:\My Projects\About License Plate\My Car Pictrues\MYPH A0081 b.bmp'); %% 640*480*1b图像
ImOutBuf = zeros(480, 640);
for i=0:479
for j=0:639
if(ImInBuf[i][j]==0 & ImInBuf[j+1][j+1]==1)
ImOutBuf[i][j]=1;
end
end
end
imshow(ImOutBuf)

%% 拟实现功能是记录图像由0到1跳变的左边缘。

matlab的矩阵的角标是从1开始的,因此楼主的
i=0:479和j=0:639是错的。。。应该从1开始,否则会出现数组越界。。。
应改成:
for i=1:479
for j=1:639
if(ImInBuf[i][j]==0 & ImInBuf[j+1][j+1]==1)
ImOutBuf[i][j]=1;
end
end
end