如何使用ros运行这个代码#!/usr/bin/env python2.7 # -*- coding: UTF-8 -*- import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge import cv2 import os from pyzbar import pyzbar from openpyxl import Workbook def image_callback(msg): # 将ROS图像消息转换为OpenCV图像 bridge = CvBridge() frame = bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8') # 执行生成文本的逻辑 image_folder_path = '/root/Pictures' output_file_name = '/root/Pictures/qr_codes_found.xlsx' main(image_folder_path, output_file_name) def main(image_folder_path, output_file_name): img_files = [f for f in os.listdir(image_folder_path) if f.endswith('.png')] qr_codes_found = [] print("Image files:") for img_file in img_files: print(img_file) for img_file in img_files: img_path = os.path.join(image_folder_path, img_file) img = cv2.imread(img_path) barcodes = pyzbar.decode(img) for barcode in barcodes: if barcode.type == 'QRCODE': qr_data = barcode.data.decode("utf-8") qr_codes_found.append((img_file, qr_data)) unique_qr_codes = [] for file_name, qr_content in qr_codes_found: if qr_content not in unique_qr_codes: unique_qr_codes.append(qr_content) # 创建一个新的工作簿 wb = Workbook() # 获取默认的工作表 sheet = wb.active # 将数据写入工作表 for i, qr_content in enumerate(unique_qr_codes, start=1): sheet.cell(row=i, column=1).value = qr_content # 保存工作簿为Excel文件 wb.save(output_file_name) if __name__ == '__main__': rospy.init_node('text_generation_node') # 创建一个订阅器订阅图像消息 rospy.Subscriber('processed_image', Image, image_callback) rospy.spin()
时间: 2024-04-17 21:29:18 浏览: 111
Linux编译静态链接出现:/usr/bin/ld: cannot find -lc,解决方式
要使用 ROS 运行这段代码,您需要按照以下步骤进行操作:
1. 确保您的计算机上已经安装了 ROS,并且已经设置好 ROS 环境。
2. 在 ROS 工作空间中创建一个新的包(如果尚未创建)。可以使用以下命令创建一个新的包:
```
cd ~/catkin_ws/src
catkin_create_pkg qr_code_reader rospy sensor_msgs cv_bridge cv2 pyzbar openpyxl
```
3. 进入包的目录:
```
cd ~/catkin_ws/src/qr_code_reader
```
4. 创建一个 `scripts` 目录,并将上述代码复制到 `scripts` 目录中。
5. 在 `scripts` 目录中,将代码文件重命名为 `qr_code_reader_node.py`。
6. 打开 `CMakeLists.txt` 文件,并添加以下行:
```
add_executable(qr_code_reader_node src/qr_code_reader_node.py)
```
7. 在终端中,导航到 ROS 工作空间的根目录并编译代码:
```
cd ~/catkin_ws
catkin_make
```
8. 激活 ROS 环境:
```
source ~/catkin_ws/devel/setup.bash
```
9. 运行 ROS 节点:
```
rosrun qr_code_reader qr_code_reader_node.py
```
请注意,这些步骤假设您已经安装了所需的依赖项。如果遇到任何错误,请确保已按照之前的说明正确安装了所需的库。
此外,确保在 ROS 环境中存在一个名为 `processed_image` 的图像话题供订阅器使用。如果没有这个话题,您需要根据实际情况进行相应的调整。
阅读全文