cv2.solvePnP方法标志的Python常量是什么?

2024-10-01 15:46:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要使用CVYP3P解决方案,但是似乎没有任何关于C++标志的Python等价物的文件,CVY-迭代,CVY-P3P和CVYEPNP。我试过cv2.CV_P3P、cv2.P3P、cv2.CV.P3P等

我发现有几个问题在问这个问题,包括:

http://opencv-users.1802565.n2.nabble.com/solvePNP-name-of-flag-constants-in-Python-td7484093.html

http://answers.opencv.org/question/8861/what-opencv-constants-are-available/

但是没有答案,除了指向这个定义python常量的源页面的链接。但我要找的常数似乎没有引用。 https://github.com/Itseez/opencv/blob/e3ae36dcb3c1d523802f8642e5c3984db43637c4/modules/python/src2/defs

我也尝试过只为该参数传递整数,但它似乎仍在使用默认方法。在

在python版本的opencv中是否可能不存在其他的求解方法?在


Tags: 文件方法comhttp标志解决方案cv2opencv
2条回答

使用python2.7和opencv2.4.8(来自apt-get),上面的标志“cv2.CV_P3P”起作用。在

好吧,我仍然得到一个错误,但它正在设法调用P3P方法。然后该方法失败,并出现错误(粘贴在下面)。在

我认为imagePoints是一个双通道的一维矩阵,而不是Nx2矩阵。这并不是Python绑定遇到问题的唯一地方:solvePnP只接受Nx3矩阵作为对象点,在3xN上失败。我相信这意味着P3P和EPNP方法不能从Python中调用,但是我希望以其他方式显示。在

错误如下:

cv2.error:/build/buildd/opencv-2.4.8+dfsg1/modules/imgproc/src/不失真cpp:279错误:错误:错误:错误:错误:(215)耶稣(215)CV\U U U U MAT MAT(U src)amp amp;CV\U U U U U U MAT MAT(U U dst)amp;amp;amp;amp;amp;U src->;各行==1 1 1 | |(U src—gt;cols==1 1)amp;amp;amp;amp;(U dst—gt;ROS==1)amp;amp;amp;amp;U src--gt;cols==1)&;amp;U src--gt;cols+U src+U src;gt;W;ROS—1;行—1===U dst—dst—1=\U dst—除非U dst—U dst>;行+\u dst->;列-1&;(CV_MAT_TYPE(_src->;TYPE)==CV_32FC2 | | CV_MAT_TYPE(_src->;TYPE)==CV_64FC2)&;(CV_MAT_TYPE(_dst->;TYPE)==CV_32FC2 | | CV_MAT_TYPE(|类型)==CV_64FC2)

我发现以下常数有效:

cv2.SOLVEPNP_迭代

cv2.SOLVEPNP_第3页

cv2.解决方案

cv2.解决方案

例如:

retval, orvec, otvec = cv2.solvePnP(object_points, image_points, 
            camera_matrix, None, None, None, False, cv2.SOLVEPNP_ITERATIVE)

相关问题 更多 >

    热门问题