我正在编写一个代码,通过计算形成3乘3平方的附近像素的标准偏差来绘制图像边缘(2448 x 3264)。
clear ; close all; clc;
Image = imread ('image.JPG');
k = 1;
n = size(Image,1);
m = size(Image,2);
Ex = zeros(n+2,m+2);
E = zeros(2248,3264,3);
for k = 1:3;
Ex([2:n+1],[2:m+1],k) = Image([1:n],[1:m],k);
for x = 2:n+1;
for y = 2:m+1;
Idx = Image([x-1:x+1],[y-1:y+1],k);
IDx = Idx';
IDx = IDx(:);
idx = find(IDx ~= 0);
IDx = IDx(idx);
num = length(IDx);
M = sum(IDx)/num;
E(x-1,y-1,k) = sqrt(sum(Idx.^2)/num - M^2);
percent_x = x/n * 100
end
end
end
imshow(E)
在我运行上面的代码后,matlab给了我一个错误:
分配比非单身下标更多的非单身rhs维度
我该如何解决这个问题? 它没有for k = 1:3循环,只计算k = 1。