当前位置: 首页>>代码示例>>C++>>正文


C++ cv::Point2d方法代码示例

本文整理汇总了C++中cv::Point2d方法的典型用法代码示例。如果您正苦于以下问题:C++ cv::Point2d方法的具体用法?C++ cv::Point2d怎么用?C++ cv::Point2d使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在cv的用法示例。


在下文中一共展示了cv::Point2d方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: worldToPixel

Point2d Camera::worldToPixel(const Point3d& world) const
{
	// all code based on OpenCV cvProjectPoints2 function
	double X, Y, Z, x, y, z;
    double r2, r4, r6, a1, a2, a3, cdist;
    double xd, yd, fx, fy, cx , cy;

	// world frame
	X = world.x;
	Y = world.y;
	Z = 0;

	// camera frame
    x = _R(0, 0)*X + _R(0, 1)*Y + _R(0, 2)*Z + _t(0, 0);
    y = _R(1, 0)*X + _R(1, 1)*Y + _R(1, 2)*Z + _t(1, 0);
    z = _R(2, 0)*X + _R(2, 1)*Y + _R(2, 2)*Z + _t(2, 0);

	// image frame
    z = z ? 1./z : 1;
    x *= z; 
	y *= z;

	fx = _A(0, 0);
	fy = _A(1, 1);
    cx = _A(0, 2);
	cy = _A(1, 2);

    r2 = x*x + y*y;
    r4 = r2*r2;
    r6 = r4*r2;
    a1 = 2*x*y;
    a2 = r2 + 2*x*x;
    a3 = r2 + 2*y*y;
    cdist = 1 + _k(0, 0)*r2 + _k(1, 0)*r4 + _k(4, 0)*r6;
    xd = x*cdist + _k(2, 0)*a1 + _k(3, 0)*a2;
    yd = y*cdist + _k(2, 0)*a3 + _k(3, 0)*a1;

	return Point2d(xd*fx + cx, yd*fy + cy);
}
开发者ID:JoshMarino,项目名称:lims-hsv-system,代码行数:39,代码来源:Camera.cpp


注:本文中的cv::Point2d方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。