我正在尝试使用Prewitt过滤器拍摄图像的渐变。你能告诉我这种方法是否正确吗?
我= 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) imshow(d)
这是对的吗?是否有更简洁的方法(不需要两次调用conv2)? conv2(I,Gx)与conv2(Gx,I)相同吗? (即可交换?)
感谢。
答案 0 :(得分:0)
根据我的维基百科判断,看起来你应该做的是:
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);