Matlab code for rotation invariant radon transform.

4 views (last 30 days)
I am having two different images of same person and I want to do identification. I found the projection matrix for two images and calculated the correlation coefficient between them. I am getting negative result for this. My system says that these are different persons. What is missing here? I have attached two images of same person. Second image is rotated and I think that is why I am not getting desired results. So, how to use rotation invariant RT?
if true
% code
% Radon Transform for feature extraction
theta = 0:179;
[R,xp] = radon(ex,theta);
figure, imagesc(theta, xp, R); colormap(hot); %scale data and display as image
xlabel('\theta (degrees)'); ylabel('X\prime');
title('R_{\theta} (X\prime)');
colorbar %display color scale
title('Radon Transform');
%feature extraction
load('features.mat');
res=[];
for i=1:1:62;
x=z(:,:,i);
y=corr2(x,R);
m=min(min(y));
res=[res m];
end
end

Answers (1)

Anay
Anay on 7 Mar 2025
Hi Manjiree,
I understand that you want to perform image identification by calculating correlation between the target image and test image. The reason you are getting negative value for correlation may be because you are finding the minimum correlation between images across the range of data in the for loop:
for i=1:1:62;
x=z(:,:,i);
y=corr2(x,R);
m=min(min(y));%potential issue
res=[res m];
end
Ensure both images are pre-processed to have the same size and aspect ratio. Consider converting them to grayscale if they aren't already. You can also consider to perform radon transform using full range of angles (0 to 359 degrees) and normalizing the radon transforms of images to reduce the effect of image intensities.
I hope this addresses the issue!

Community Treasure Hunt

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

Start Hunting!