1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-31 08:13:04 +04:00

Fixed bug in motion stabilization pipeline and updated wobble stabilizer (videostab)

This commit is contained in:
Alexey Spizhevoy
2012-04-09 11:58:56 +00:00
parent 30b461a506
commit 39cd13583f
3 changed files with 35 additions and 6 deletions
+6 -5
View File
@@ -104,24 +104,25 @@ void MoreAccurateMotionWobbleSuppressor::suppress(int idx, const Mat &frame, Mat
yl = ML(1,0)*x + ML(1,1)*y + ML(1,2);
zl = ML(2,0)*x + ML(2,1)*y + ML(2,2);
xl /= zl; yl /= zl;
wl = 1.f / (sqrt(sqr(x - xl) + sqr(y - yl)) + 1e-5f);
wl = idx - k1;
xr = MR(0,0)*x + MR(0,1)*y + MR(0,2);
yr = MR(1,0)*x + MR(1,1)*y + MR(1,2);
zr = MR(2,0)*x + MR(2,1)*y + MR(2,2);
xr /= zr; yr /= zr;
wr = 1.f / (sqrt(sqr(x - xr) + sqr(y - yr)) + 1e-5f);
wr = k2 - idx;
mapx_(y,x) = (wl * xl + wr * xr) / (wl + wr);
mapy_(y,x) = (wl * yl + wr * yr) / (wl + wr);
mapx_(y,x) = (wr * xl + wl * xr) / (wl + wr);
mapy_(y,x) = (wr * yl + wl * yr) / (wl + wr);
}
}
if (result.data == frame.data)
result = Mat(frame.size(), frame.type());
remap(frame, result, mapx_, mapy_, INTER_LINEAR);
remap(frame, result, mapx_, mapy_, INTER_LANCZOS4, BORDER_REPLICATE);
}
} // namespace videostab
} // namespace cv