imregcorr() misaligns images badly
8 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
[tform, peakregcorr] = imregcorr(SourceImageAdj,SourceRef, ...
TargetImageAdj,TargetRef, ...
'transformType', 'similarity', ...
'Window', true);
RegisteredImage = imwarp(SourceImageAdj,SourceRef, tform, 'linear', ...
'OutputView', TargetRef);
disp(peakregcorr)
figure, imshowpair(TargetImageAdj,TargetRef,RegisteredImage, TargetRef)
above is my code to correlate 2 images of different sizes. the goal is to find the correlation between the images to determine what pixel location a point of interest might lie in both images. However, imregcorr consistently misses the mark badly.
Whereas the code above might output a tform object - Dimensionality: 2, Scale: 0.4254, RotationAngle: 2.4851, Translation: [-0.3269 -0.0904]
A more correct tform object (based upon the output image would look like - Dimensionality: 2, Scale: 1, RotationAngle: -1, Translation: [0.0640 0]
The SourceRef and TargetRef seem correct, so Im not sure what is causing the issue
2 Commenti
Risposta accettata
Matt J
il 8 Lug 2024
Modificato: Matt J
il 8 Lug 2024
Phase correlation isn't going to be a good algorithm for images of a starry field. I think your best bet is to do landmark extraction -- either manually with cpselect or automatically if you have some way to do that -- and then use fitgeotform2d.
[sp,tp] = cpselect(SourceImageAdj, TargetImageAdj ,'Wait',true);
[sp(:,1), sp(:,2)]=intrinsicToWorld(SourceRef, sp(:,1), sp(:,2))
[tp(:,1), tp(:,2)]=intrinsicToWorld(TargetRef, tp(:,1), tp(:,2))
tform = fitgeotform2d(sp,tp,'similarity')
RegisteredImage = imwarp(SourceImageAdj,SourceRef, tform, 'linear', ...
'OutputView', TargetRef);
figure, imshowpair(TargetImageAdj,TargetRef,RegisteredImage, TargetRef)
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Geometric Transformation and Image Registration in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!