Finding correlation between two images
古いコメントを表示
Suppose I want to perform correlation between two images. I know there is a function normxcorr2 which can be used to find the correlation between two images (img1, img2) like this
When I run the imfilter command and use the imshow() command to output the resulting image, I can see that it is different from what I get when I output the resulting image using normxcorr2 command.The image generated through normxcorr2 looks more like what i would expect from the correlation of the two images. What's the difference between these two methods?
C = normxcorr2(img1, img2)
But can I find the correlation using imfilter? Does this command perform correlation?
corr = imfilter(img1, img2, 'corr','replicate');
When I run the imfilter command and use the imshow() command to output the resulting image, I can see that it is different from what I get when I output the resulting image using normxcorr2 command.
imshow(C);
figure
imshow(corr);
The image generated through normxcorr2 looks more like what i would expect from the correlation of the two images. What's the difference between these two methods? Is using imfilter even logical?
2 件のコメント
Bjorn Gustavsson
2021 年 9 月 24 日
Have you looked in the documentation how normxcorr2 normalizes the x-correlation values for the different shifts, it seems a "natural" guess that it properly scales with the number of samples, while imfilter might "not bother with that" since its purpose is mainly to filter images.
Mohammad Saquib Khan
2021 年 9 月 24 日
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Image Filtering についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!