Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我运行代码时,它什么也不做(ROS、opencv)_Opencv_Ros - Fatal编程技术网

当我运行代码时,它什么也不做(ROS、opencv)

当我运行代码时,它什么也不做(ROS、opencv),opencv,ros,Opencv,Ros,这就是我的问题。我正在使用ROS和opencv,试图用两个摄像头创建一个深度图。然而,我写的代码似乎没有任何作用,我有点困惑为什么。(我之前运行的代码具有相同的结构) 订阅任何主题之前必须执行rospy.init。我不是rospy方面的专家,但您在回调中将cv_image_1和cv_image_2设置为同一个图像,这不是真的吗? #!/usr/bin/env python from __future__ import print_function import roslib roslib.loa

这就是我的问题。我正在使用ROS和opencv,试图用两个摄像头创建一个深度图。然而,我写的代码似乎没有任何作用,我有点困惑为什么。(我之前运行的代码具有相同的结构)


订阅任何主题之前必须执行rospy.init。

我不是rospy方面的专家,但您在回调中将cv_image_1和cv_image_2设置为同一个图像,这不是真的吗?
#!/usr/bin/env python
from __future__ import print_function
import roslib
roslib.load_manifest('test_cam')
import sys
import rospy
import cv2
from std_msgs.msg import String
from sensor_msgs.msg import Image
from cv_bridge import CvBridge, CvBridgeError
import message_filters

class image_converter:

  def __init__(self):

    self.bridge = CvBridge()
    self.image_sub_1 = message_filters.Subscriber("/cameras/left_hand_camera/image",Image)
    self.image_sub_2 = message_filters.Subscriber("/cameras/head_camera/image",Image)
    self.ts = message_filters.TimeSynchronizer([self.image_sub_1, self.image_sub_2], 10)
    self.ts.registerCallback(self.callback)

  def callback(self,Image):
    try:
      cv_image_1 = self.bridge.imgmsg_to_cv2(Image, "bgr8")
      cv_image_2 = self.bridge.imgmsg_to_cv2(Image, "bgr8")

    except CvBridgeError as e:
      print(e)

    stereo = cv2.StereoBM_create(numDisparities=16, blockSize=15)
    disparity = stereo.compute(cv_image_1,cv_image_2)
    plt.imshow(disparity,'gray')
    plt.show()
    plt.waitKey(1)

def main(args):
  ic = image_converter()

  rospy.init_node('image_converter', anonymous=True)
  try:
    rospy.spin()
  except KeyboardInterrupt:
    print("Shutting down")
  cv2.destroyAllWindows()

if __name__ == '__main__':
    main(sys.argv)