opencv - 使用 OpenCV 从已知坐标的点中查找相机的位置
问题描述
This question is like this one,但我找不到我的问题所在。我正在尝试使用 openCV 的相机 calibrateCamera 来查找相机的位置,在这种情况下,使用跑道角的已知位置在飞机上:
import cv2
objectPoints=np.array([[posA,posB,posC,posD]], dtype='float32')
imagePoints=np.array([[R0,R1,L1,L0]],dtype='float32')
imageSize=(1152,864)
retval, cameraMatrix, distCoeffs, rvecs, tvecs = cv2.calibrateCamera(objectPoints, imagePoints, imageSize, None, None)
#rotation matrix
R_mtx, jac = cv2.Rodrigues(np.array(rvecs).T)
cameraPosition = -np.matrix(R_mtx).T * np.matrix(tvecs[0])
cameraPosition
其中 [R0,R1,L1,L0] 是图像上以像素为单位的角点位置,[posA,posB,posC,posD] 是跑道在现实世界中的位置。我得到这个代码的答案:
matrix([[ -4.7495336 ], #x
[936.21932548], #y
[-40.56147483]]) #z
当我应该得到类似的东西时:
#[x,y,z]
[-148.4259877253941, -1688.345610364497, 86.58536585365854]
解决方案
推荐阅读
- sockets - HTTP/1.1 如何解决 TCP 重置问题?
- java - Eclipse JavaFX css 未知属性 -fx-background-color
- javascript - 有没有办法遍历按钮列表并在单击特定按钮时切换它?
- javascript - 从文本文件 javascript 中调用数据
- java - HikariCP 池溢出 Spring Boot
- oauth-2.0 - 如何在 AAD 中设置系统分配身份的范围?
- reactjs - React:嵌套数组形式 - 输入字段 onChange 处理程序
- c - 无法到达c中的第一位字符
- angular - 在具有自定义文本类别的 Angular Kendo 柱形图中为 categoryAxis 添加可平移选项
- r-modis - runGdal 开始日期问题