Matlab维度错误

时间:2016-09-16 14:18:02

标签: image-processing matlab

我正在编写一个代码,通过计算形成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。

0 个答案:

没有答案