OpenCv C++ Perspective Transform
我正在尝试使用opencv来校正图像的失真,然后在给定像素坐标的情况下计算真实世界的坐标。我在网上或在OpenCV手册中找不到任何这样做的例子。
我已经用棋盘图像进行了相机校准。现在,我只需要一个基本的函数,我可以给像素坐标,它将给我基于摄像机矩阵,失真系数,旋转和平移向量的真实世界坐标。
有人知道怎么做吗?
带看在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | std::vector<Point2f> worldPoints; std::vector<Point2f> cameraPoints; //insert somepoints in both vectors Mat perspectiveMat_= findHomography(cameraPoints, worldPoints, CV_RANSAC); //use perspective transform to translate other points to real word coordinates std::vector<Point2f> camera_corners; //insert points from your camera image here std::vector<Point2f> world_corners; perspectiveTransform(camera_corners, world_corners, perspectiveMat_); |
你可以找到更多的信息关于睾丸功能 P / < >
我明白你需要的correctly世界点从图像的点。与monocular相机这个问题也unsolvable。你不确定的depth(距离)的真实世界的点到相机。 P / < >
有视觉simultaneous localization和mapping(SLAM)算法,创建一个地图的游戏世界和compute的trajectory英语,从相机的视频,但他们是在整个其他的事情。 P / < >
在单一的图像的点和在它,会表示,在词汇表中的二维像素coordinates,有一个无限的三维点在现实世界中,所有的belonging到线的地图,这是给你点在你的图像。不只是一个点。 P / < >
但是,如果你知道的距离的对象在像素(x,y),然后你可以从相机calculate ITS的位置在三维。 P / < >