Updated by Andrey Kamaev almost 13 years ago
The center does not appear to be computed properly when padding to optimal DFT size.
Instead of using src1 rows/cols, padded1 rows/cols should be used instead.
<pre><code class="Diff"> <pre>
--- modules/imgproc/src/phasecorr.cpp (revision 8074)
+++ modules/imgproc/src/phasecorr.cpp (working copy)
@@ -556,7 +556,7 @@
t = weightedCentroid(C, peakLoc, Size(5, 5));
// adjust shift relative to image center...
- Point2d center((double)src1.cols / 2.0, (double)src1.rows / 2.0);
+ Point2d center((double)padded1.cols / 2.0, (double)padded1.rows / 2.0);
return (center - t);
}
</code></pre> </pre>
Instead of using src1 rows/cols, padded1 rows/cols should be used instead.
<pre><code class="Diff"> <pre>
--- modules/imgproc/src/phasecorr.cpp (revision 8074)
+++ modules/imgproc/src/phasecorr.cpp (working copy)
@@ -556,7 +556,7 @@
t = weightedCentroid(C, peakLoc, Size(5, 5));
// adjust shift relative to image center...
- Point2d center((double)src1.cols / 2.0, (double)src1.rows / 2.0);
+ Point2d center((double)padded1.cols / 2.0, (double)padded1.rows / 2.0);
return (center - t);
}
</code></pre> </pre>