ros 在图像中显示文字
时间: 2024-02-24 09:56:03 浏览: 69
在 ROS 中,在图像上显示文字可以使用 OpenCV 库提供的 `cv2.putText()` 函数。可以将其与 ROS 的图像消息 (`sensor_msgs/Image`) 结合使用,以在 ROS 中显示文字。
下面是一个示例代码,演示如何在 ROS 中显示文字:
```python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cv2
import numpy as np
import rospy
from sensor_msgs.msg import Image
from cv_bridge import CvBridge, CvBridgeError
# 初始化cv_bridge
bridge = CvBridge()
# 定义回调函数,处理订阅到的图像
def image_callback(msg):
# 将ROS图像格式转换为OpenCV图像格式
try:
cv_image = bridge.imgmsg_to_cv2(msg, 'bgr8')
except CvBridgeError as e:
print(e)
return
# 在图像上添加文字
cv2.putText(cv_image, "Hello, ROS!", (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
# 显示图像
cv2.imshow('frame', cv_image)
cv2.waitKey(1)
# 初始化节点
rospy.init_node('text_overlay')
# 订阅摄像头图像
image_sub = rospy.Subscriber('/usb_cam/image_raw', Image, image_callback)
# 进入循环
rospy.spin()
# 关闭窗口
cv2.destroyAllWindows()
```
在这个示例代码中,我们订阅了一个名为 `/usb_cam/image_raw` 的图像话题,然后将每个图像上添加了一个文本信息 "Hello, ROS!",并在窗口中显示它。您可以根据需要更改文本信息的位置、大小、字体等参数。
阅读全文