Hi,
I see that you want to calculate pixel offset between two similar images.
You can achieve this by following the below steps:
- 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.
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!