Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从鱼眼摄像机到真实平面图像的无标定目标变换_Python_Python 3.x_Transformation_Opencv4 - Fatal编程技术网

Python 从鱼眼摄像机到真实平面图像的无标定目标变换

Python 从鱼眼摄像机到真实平面图像的无标定目标变换,python,python-3.x,transformation,opencv4,Python,Python 3.x,Transformation,Opencv4,我有一个装有鱼眼的摄像头,它可以从后面看到目标。我得到了圆圈,但它们被鱼眼变形了。由于opencv具有功能,因此不可能使用棋盘进行校准。我有目标中圆圈的实际大小,需要得到变换函数或其他东西,当激光射向目标中的某个点时,将其变换为真实的碰撞位置,以便在平面目标上呈现 我已经做了一些预处理,用canny得到了估计的圆,并找到了轮廓。请注意,相机的中心并不总是完全位于目标的中心。我有每一个圆圈大小的真实目标,这就是我所有的。已经在OpenCV中尝试过透视扭曲和其他一些函数,但没有得到好的结果 从中间开

我有一个装有鱼眼的摄像头,它可以从后面看到目标。我得到了圆圈,但它们被鱼眼变形了。由于opencv具有功能,因此不可能使用棋盘进行校准。我有目标中圆圈的实际大小,需要得到变换函数或其他东西,当激光射向目标中的某个点时,将其变换为真实的碰撞位置,以便在平面目标上呈现

我已经做了一些预处理,用canny得到了估计的圆,并找到了轮廓。请注意,相机的中心并不总是完全位于目标的中心。我有每一个圆圈大小的真实目标,这就是我所有的。已经在OpenCV中尝试过透视扭曲和其他一些函数,但没有得到好的结果

从中间开始的实际圆尺寸(mm): 5. 12 28 44 60 76 92 108 124 140 156

输入图像:

找到的等高线:


预期的结果是变换矩阵或某种函数,它将根据摄像机输入目标上的点获取实际坐标。

好吧,我没有解决这个问题,所以我使用了OpenCV中的鱼眼校准,从棋盘矩阵图像中获取。但如果有人给出了一个好的方法,我想知道。好吧,我没有解决这个问题,所以我使用了从chessmatrix图像构建的OpenCV中的鱼眼校准。但如果有人给了我一个好方法,我想知道。