Я впервые узнаю о фильтрах Габора и о том, как их можно использовать для восстановления отпечатков пальцев с их карт ориентации.Мне дали карту ориентации в виде .jpg, и я хочу применить к ней фильтры Габора с 4 ориентациями.Я последовал примеру в документации и получил следующий код:
input_img = imread('orientation.jpg');
input_img = rgb2gray(input_img);
wavelength = 6;
orientation = [0 45 90 135];
gaborArray = gabor(wavelength,orientation);
gaborMag = imgaborfilt(input_img,gaborArray);
figure
subplot(2,2,1);
for p = 1:4
subplot(2,2,p)
imshow(gaborMag(:,:,p),[]);
theta = gaborArray(p).Orientation;
lambda = gaborArray(p).Wavelength;
title(sprintf('Orientation=%d, Wavelength=%d',theta,lambda));
end
Мой ввод:
![orientation.jpg](https://i.stack.imgur.com/MqtQE.jpg)
Вывод: ![output](https://i.stack.imgur.com/lqYO9.jpg)
Однако мне действительно нужен один отпечаток, похожий на следующий:
![fingerprint.jpg](https://i.stack.imgur.com/kPFCF.jpg)
Я понимаю, что мой вывод в настоящее время такой, какой он есть из-за subplot
.Я попытался заменить subplot
на hold on
и plot
, но в итоге получается, что окончательное изображение с ориентацией = 135 перекрывает другие.
Есть ли способ перекрытия графиков при усреднении значений яркости / интенсивности каждого пикселя?Любое руководство приветствуется.