Now I'm using standard phase correlation for image stitching. It give normal results, but on hard images it gives wrong result, but Stitch 2D plugin in ImageJ(FIJI) gives good result in the majority of cases. The algorithm used in plugin described in this paper http://bioinformatics.oxfordjournals.org/content/25/11/1463.full.pdf But i can't understand it. "In real images, however,F−1(Q) contains several peaks marking different translations with high correlation. Moreover, each peak describes eight different possible translations (in 3D) due to the periodicity of the Fourier space. To determine the correct shift, we select the n highest local maxima (3×3×3 neighborhood) from F−1(Q) and evaluate their eight possible translations by means of cross-correlation on the overlapping area of the images A,B. The peak with the highest correlation is selected as translation between the two images. If none of the peaks is above a certain limit the tiles are assumed to be non-overlapping." can anyone explain how to implement it?
1
votes
If you are using 2-D Phase Correlation I suggest you read introductory material or original papers. Checking the 8 best peaks (for 3-D) with cross correlation is a waste of time.
- koan
it seems that algorithm axplained in "Kuglin,C.D. and Hines,D.C. (1975) The phase correlation image alignment method. In Proceedings of the IEEE, International Conference on Cybernetics and Society, pp. 163–165." but I can't find this paper.
- mrgloom
Here is another important paper by Graham Thomas, bbc.co.uk/rd/publications/rdreport_1987_11.shtml I think you will find it teaches everything you need.
- koan
I find only some information about filtration in this paper. What if I smooth initial image? it help to filtrate fake peaks? or I must filtrate spatial domain?
- mrgloom
Are you windowing the input to phase correlation ? or does it do it for you ? This is essential.
- koan
1 Answers
1
votes
From the quote it looks as if:
- They use phase correllation to find multiple candidates ("we select the n highest local maxima (3×3×3 neighborhood) from F−1(Q)") for the overlapping segment between two images
- And then they use some matching in the original image data ("by means of cross-correlation on the overlapping area of the images A,B.")
- To select the best candidate from those("The peak with the highest correlation is selected as translation between the two images."),
- If that best candidate matches good enough ("If none of the peaks is above a certain limit the tiles are assumed to be non-overlapping.").