opencv aruco 中的断言错误estimatePoseSingleMarkers()

问题描述

我在使用 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 (将#修改为@)