I want to access my camera using OpenCV in ros kinetic, this is my code
#!/usr/bin/env python2.7
import rospy
from sensor_msgs.msg import Image
import cv2
from cv_bridge import CvBridge, CvBridgeError
rospy.init_node('opencv_example', anonymous=True)
bridge = CvBridge()
def show_image(img):
cv2.imshow("Image Window", img)
cv2.waitKey(3)
def image_callback(img_msg):
try:
cv_image = bridge.imgmsg_to_cv2(img_msg, "passthrough")
except CvBridgeError, e:
rospy.logerr("CvBridge Error: {0}".format(e))
show_image(cv_image)
sub_image = rospy.Subscriber("/raspicam_node/image/compressed", Image, image_callback)
cv2.namedWindow("Image Window", 1)
while not rospy.is_shutdown():
rospy.spin()
all I get after this code is a blank image window
before you ask the topic address, I can access the camera with this command rostrum image_view image_view image:=/raspicam_node/image/ _image_transport:=compressed
currently, I am working with
- Ubuntu 16.04
- Ros Kinetic
- Open CV 3.3.1