问题描述
我在使用 python 的 opencv 中遇到断言错误。
#Aruco properties
self.aruco_dict = aruco.Dictionary_get(aruco.DICT_5X5_50)
self.aruco_size = 0.05
self.aruco_params = aruco.DetectorParameters_create()
self.aruco_params.cornerRefinementMethod = aruco.CORNER_REFINE_SUBPIX
self.aruco_params.cornerRefinementWinSize = 5
self.aruco_params.cornerRefinementMinAccuracy = 0.001
self.aruco_params.cornerRefinementMaxIterations = 5
self.mtx = []
self.dist = []
self.load_camera_info()
self.getArucopose()
def load_camera_info(self):
#load camera calibration
d435_camera_info = rospy.wait_for_message(self.d435_camera_info_topic,CameraInfo)
print("Camera Info Loaded")
self.mtx = d435_camera_info.K
self.dist = d435_camera_info.P
return 0
def getD435Image(self):
d435_image = rospy.wait_for_message(self.d435_image_topic,Image)
print("d435 image Loaded")
image = self.cv_bridge.imgmsg_to_cv2(d435_image,desired_encoding='bgr8')
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
return image,gray
def getArucopose(self):
color_img,input_image = self.getD435Image()
corners,ids,rejectedImgPoints = aruco.detectMarkers(color_img,self.aruco_dict,parameters=self.aruco_params)
rvecs,tvecs,trash = aruco.estimatePoseSingleMarkers(corners,self.aruco_size,self.mtx,self.dist)
print(rvecs)
错误是
Camera Info Loaded
d435 image Loaded
OpenCV Error: Assertion Failed (src.size == dst.size && src.channels() == dst.channels()) in cvConvertScale,file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/convert.cpp,line 5903
Traceback (most recent call last):
File "aruco_detect.py",line 247,in <module>
ur10_camera_calibration()
File "aruco_detect.py",line 82,in __init__
self.getArucopose()
File "aruco_detect.py",line 146,in getArucopose
rvecs,self.dist)
cv2.error: /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/convert.cpp:5903: error: (-215) src.size == dst.size && src.channels() == dst.channels() in function cvConvertScale
我相信它与 python 中的列表有关吗?
感谢您的帮助,谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)