added wave correct support into opencv_stitching

This commit is contained in:
Alexey Spizhevoy
2011-05-06 06:20:41 +00:00
parent 3928dd9d99
commit 15173fc559
2 changed files with 28 additions and 22 deletions

View File

@@ -685,7 +685,6 @@ void BundleAdjuster::calcJacobian()
//////////////////////////////////////////////////////////////////////////////
// TODO test on adobe/halfdome
void waveCorrect(vector<Mat> &rmats)
{
float data[9];
@@ -710,10 +709,13 @@ void waveCorrect(vector<Mat> &rmats)
Mat avgz = Mat::zeros(3, 1, CV_32F);
for (size_t i = 0; i < rmats.size(); ++i)
avgz += rmats[i].col(2);
avgz.t().cross(r1).copyTo(r0);
r1.cross(avgz.t()).copyTo(r0);
normalize(r0, r0);
r0.cross(r1).copyTo(r2);
r1.cross(r0).copyTo(r2);
if (determinant(R) < 0)
R *= -1;
for (size_t i = 0; i < rmats.size(); ++i)
rmats[i] = R * rmats[i];