微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

opencv aruco 中的断言错误estimatePoseSingleMarkers()

如何解决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 举报,一经查实,本站将立刻删除。