필요한 모듈을 load합니다.
import rospy
from sensor_msgs.msg import Image
import numpy as np
import cv2
from cv_bridge import CvBridge
plot 하기 위한 모듈들을 가져옵니다.
import matplotlib.pyplot as plt
from IPython.display import display, clear_output
CvBridge, plot을 초기화 합니다.
bridge = CvBridge()
fig, ax = plt.subplots()
empty_image = np.zeros((200, 300, 3), dtype=np.uint8)
img_obj = ax.imshow(empty_image)
ax.set_title('USB CAM Image')
새로운 image가 들어왔을때 호출되는 callback함수를 만들어줍니다.
def callback_image(topic):
image = bridge.imgmsg_to_cv2(topic, 'rgb8')
img_obj.set_data(image)
clear_output(wait=True)
display(fig)
노드를 초기화하고 Subscriber를 만들면 끝
rospy.init_node('image_viewer')
rospy.Subscriber('/usb_cam/image_raw', Image,callback_image, queue_size=10)