【问题标题】:Prewitt filter in MatlabMatlab中的Prewitt滤波器
【发布时间】:2012-03-28 02:53:10
【问题描述】:

我正在尝试使用 Prewitt 滤镜对图像进行渐变。你能告诉我这种方法是否正确吗?

I = imread('image.jpg') Gx = [-1 0 1; -1 0 1; -1 0 1]; Gy = [1 1 1; 0 0 0; 1 1 1]; D = conv2(conv2(I, Gx), Gy) 显示(D)

正确吗?有没有更清洁的方法(无需调用 conv2 两次)? conv2(I, Gx) 和 conv2(Gx, I) 一样吗? (即可交换?)

谢谢。

【问题讨论】:

    标签: matlab gradient


    【解决方案1】:

    根据我的维基百科判断,您应该做的是:

    I = imread('image.jpg')
    Gx = [-1 0 1; -1 0 1; -1 0 1];
    Gy = [1 1 1; 0 0 0; -1 -1 -1];
    
    A = sqrt( conv2(I,Gx).^2 + conv2(I,Gy).^2 );
    imshow(A);
    

    Link to Wikipedia Article

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多