2012-03-28 12 views
0

Prewittフィルタを使用して画像のグラデーションを取ろうとしています。このアプローチが正しいかどうか教えていただけますか?Matlabの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) imshow(D)

これは間違いありませんか?よりクリーンな方法がありますか(conv2を2回呼び出す必要はありません)? conv2(I、Gx)はconv2(Gx、I)と同じですか? (可換性?)

ありがとうございます。

私のウィキペディア-INGの何をやるべきことはあるように見えるから判断する

答えて

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); 

Link to Wikipedia Article