私は画像処理に非常に慣れていません.0,15,30,45から165までの12の異なる方向を持つ画像にガボールフィルターを適用する方法を知りたいです.12の方向と出力にこのガボールフィルターを適用したい.各方向を表示する必要があります。私の入力は網膜の画像で、方向の出力は、ガボール フィルターを適用した後の網膜の微調整画像である必要があります。どうすればよいですか?
%code for gabor filter
I = getimage();
I=I(:,:,2);
lambda = 8;
theta = 0;
psi = [0 pi/2];
gamma = 0.5;
bw = 1;
N = 12;
img_in = im2double(I);
%img_in(:,:,2:3) = []; % discard redundant channels, it's gray anyway
img_out = zeros(size(img_in,1), size(img_in,2), N);
for n=1:N
gb = gabor_fn(bw,gamma,psi(1),lambda,theta)...
+ 1i * gabor_fn(bw,gamma,psi(2),lambda,theta);
% gb is the n-th gabor filter
img_out(:,:,n) = imfilter(img_in, gb, 'symmetric');
% filter output to the n-th channel
%theta = theta + 2*pi/N;
theta = 15 * n; % i wrote this because my angles are multiples of 15
% next orientation
end
figure(1);
imshow(img_in);
title('input image');
figure(2);
img_out_disp = sum(abs(img_out).^2, 3).^0.5;
%default superposition method, L2-norm
img_out_disp = img_out_disp./max(img_out_disp(:));
% normalize
imshow(img_out_disp);
title('gabor output, L-2 super-imposed, normalized');
私の入力画像は
私の出力画像は
ガボール フィルターを適用して、画像を 12 の異なる方向に向ける方法
網膜画像の出力を取得することになっていますが、出力画像を次のように取得しています