- Process the Images: Start by reading your images that you want to process.
- Align Usingnormxcorr2: Use the‘normxcorr2’function to perform normalized cross-correlation on the images.
- Locate the peak value and calculate the offset based on the position of the peak.
how to calculate image pixels shift
10 views (last 30 days)
Show older comments
hello,
i have two similar images, but one has a pixels shift compare to the other. how can i calculate the the offset (amount of pixels) for axis x and y?
0 Comments
Answers (1)
Manish
on 25 Oct 2024
Edited: Manish
on 25 Oct 2024
Hi,
I see that you want to calculate pixel offset between two similar images.
You can achieve this by following the below steps:
Here is the sample code of above steps:
image1 = imread('img1.png');
image2 = imread('img2.png');
crossCorrMatrix = normxcorr2(image2, image1);
[maxCorr, maxIndex] = max(abs(crossCorrMatrix(:)));
[yPeak, xPeak] = ind2sub(size(crossCorrMatrix), maxIndex);
yOffset = yPeak - size(image2, 1);
xOffset = xPeak - size(image2, 2);
fprintf('Offset in X: %d pixels\n', xOffset);
fprintf('Offset in Y: %d pixels\n', yOffset);
Refer to the documentation link below for more information on the‘normxcorr2’function:
Hope it helps!
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!