不支持使用 conv2 ND 数组的错误

Sar*_*ara 2 matlab matlab-figure

我写了这段代码,通过将图像与水平和垂直导数滤波器卷积来计算每个像素的梯度向量,然后计算每个像素的梯度幅度,但我得到以下错误conv2

不支持使用 conv2 ND 数组时出错。X 中的错误(第 7 行) Gx=conv2(A,Sx)

  A=imread('peppers.png');
figure,imshow(A); title('Sobel Gradient Before');
V= double (A);

Sx = [1,0,-1;2,0,-2;1,0,-1];
        Gx=Conv2(A,Sx);
        figure
        imshow(Gx); title('x-direction');

Sy = [1,2,1;0,0,0;-1,-2,-1];
        Gy=Conv2(A,Sy);
        figure
        imshow(Gy); title('y-direction');

        G=sqrt(Gx.^2+Gy.^2);
        figure,imshow(G); title('Sobel Gradient After');
Run Code Online (Sandbox Code Playgroud)

Cri*_*ngo 5

对于彩色图像,imread返回一个 3D 数组,其中第 3 维有 3 个 R、G、B 元素。您需要先将图像转换为灰度值。或者使用 对彩色图像进行卷积convn

要将图像转换为灰度,请使用该rgb2gray函数。