Overload PlaneWarper::buildMaps method from base class
This commit is contained in:
parent
62d4393883
commit
0aab779532
@ -135,6 +135,7 @@ public:
|
|||||||
Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R, InputArray T);
|
Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R, InputArray T);
|
||||||
|
|
||||||
virtual Rect buildMaps(Size src_size, InputArray K, InputArray R, InputArray T, OutputArray xmap, OutputArray ymap);
|
virtual Rect buildMaps(Size src_size, InputArray K, InputArray R, InputArray T, OutputArray xmap, OutputArray ymap);
|
||||||
|
Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap);
|
||||||
|
|
||||||
virtual Point warp(InputArray src, InputArray K, InputArray R, InputArray T, int interp_mode, int border_mode,
|
virtual Point warp(InputArray src, InputArray K, InputArray R, InputArray T, int interp_mode, int border_mode,
|
||||||
OutputArray dst);
|
OutputArray dst);
|
||||||
|
@ -57,7 +57,7 @@ __kernel void buildWarpPlaneMaps(__global uchar * xmapptr, int xmap_step, int xm
|
|||||||
int ymap_index = mad24(dv0, ymap_step, mad24(du, (int)sizeof(float), ymap_offset));
|
int ymap_index = mad24(dv0, ymap_step, mad24(du, (int)sizeof(float), ymap_offset));
|
||||||
|
|
||||||
float u = tl_u + du;
|
float u = tl_u + du;
|
||||||
float x_ = u * scale - ct[0];
|
float x_ = fma(u, scale, -ct[0]);
|
||||||
float ct1 = 1 - ct[2];
|
float ct1 = 1 - ct[2];
|
||||||
|
|
||||||
for (int dv = dv0, dv1 = min(rows, dv0 + rowsPerWI); dv < dv1; ++dv, xmap_index += xmap_step,
|
for (int dv = dv0, dv1 = min(rows, dv0 + rowsPerWI); dv < dv1; ++dv, xmap_index += xmap_step,
|
||||||
@ -67,7 +67,7 @@ __kernel void buildWarpPlaneMaps(__global uchar * xmapptr, int xmap_step, int xm
|
|||||||
__global float * ymap = (__global float *)(ymapptr + ymap_index);
|
__global float * ymap = (__global float *)(ymapptr + ymap_index);
|
||||||
|
|
||||||
float v = tl_v + dv;
|
float v = tl_v + dv;
|
||||||
float y_ = v * scale - ct[1];
|
float y_ = fma(v, scale, -ct[1]);
|
||||||
|
|
||||||
float x = fma(ck_rinv[0], x_, fma(ck_rinv[1], y_, ck_rinv[2] * ct1));
|
float x = fma(ck_rinv[0], x_, fma(ck_rinv[1], y_, ck_rinv[2] * ct1));
|
||||||
float y = fma(ck_rinv[3], x_, fma(ck_rinv[4], y_, ck_rinv[5] * ct1));
|
float y = fma(ck_rinv[3], x_, fma(ck_rinv[4], y_, ck_rinv[5] * ct1));
|
||||||
|
@ -87,6 +87,11 @@ Point2f PlaneWarper::warpPoint(const Point2f &pt, InputArray K, InputArray R, In
|
|||||||
return uv;
|
return uv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rect PlaneWarper::buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap)
|
||||||
|
{
|
||||||
|
return buildMaps(src_size, K, R, Mat::zeros(3, 1, CV_32FC1), xmap, ymap);
|
||||||
|
}
|
||||||
|
|
||||||
Rect PlaneWarper::buildMaps(Size src_size, InputArray K, InputArray R, InputArray T, OutputArray _xmap, OutputArray _ymap)
|
Rect PlaneWarper::buildMaps(Size src_size, InputArray K, InputArray R, InputArray T, OutputArray _xmap, OutputArray _ymap)
|
||||||
{
|
{
|
||||||
projector_.setCameraParams(K, R, T);
|
projector_.setCameraParams(K, R, T);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user