Error in Comparing 2 images using correlation

1 ビュー (過去 30 日間)
A R 2020 年 5 月 17 日
Hi, I have 2 images, visible and a thermal image. I cropped the face in the visible image, and i have to match this cropped face to the thermal image face. I used correlation function to match between the 2 images, but i get wrong results.
folder = fullfile('C:\Users\USER\Desktop\memstech\database');
baseFileName = 'visible.jpg';
% Get the full filename, with path prepended.
fullFileName = fullfile(folder, baseFileName);
rgbImage = imread(fullFileName);
[rows columns numberOfColorBands] = size(rgbImage);
% Display the original color image.
subplot(2, 2, 1);
imshow(rgbImage, []);
axis on;
title('Original Color Image', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
smallSubImage = imcrop(rgbImage, [203.510000000000,76.5100000000000,42.9800000000000,80.9800000000000]);
subplot(2, 2, 2);
imshow(smallSubImage, []);
axis on;
title('Template Image to Search For', 'FontSize', fontSize);
correlationOutput = normxcorr2(smallSubImage, thermal);
subplot(2, 2, 3);
imshow(correlationOutput, []);
title('Correlation Output', 'FontSize', fontSize);
[maxCorrValue, maxIndex] = max(abs(correlationOutput(:)));
[ypeak, xpeak] = ind2sub(size(correlationOutput),maxIndex(1));
corr_offset = [(xpeak-size(smallSubImage,2)) (ypeak-size(smallSubImage,1))];
subplot(2, 2, 4);
hold on;
rectangle('position',[corr_offset(1) corr_offset(2) 100 100],...
title('Template Image Found in Original Image', 'FontSize', fontSize);
where did this algorithm went wrong? How to find the face patch in the thermal image. Kindly help me with your suggestions.
I am trying this method, because image registration failed to align 2 images with different field of view.

回答 (0 件)


Find more on Image Processing Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by