sombruxo

Untitled

Oct 23rd, 2026
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.40 KB | Source Code | 0 0
  1. import rclpy
  2. from rclpy.node import Node
  3.  
  4. from std_msgs.msg import String
  5. from sensor_msgs.msg import Image
  6.  
  7. from ultralytics import YOLO
  8. import cv2
  9.  
  10.  
  11. class YoloDetect(Node):
  12.  
  13.     def __init__(self):
  14.         super().__init__('YoloDetect')
  15.         self.publisher_ = self.create_publisher(String, 'yolodetect', 10)
  16.         self.publisher_img = self.create_publisher(Image, 'yolodetect', 10)
  17.         timer_period = 0.5  # seconds
  18.         self.timer = self.create_timer(timer_period, self.timer_callback)
  19.         self.cap = cv2.VideoCapture("/mnt/c/Users/Bemposta/Videos/madrid.mp4")
  20.         if not self.cap.isOpened():
  21.             print("Cannot open video:")
  22.             exit()
  23.         self.model = YOLO("yolo26n.pt")
  24.  
  25.     def timer_callback(self):
  26.         ret, frame = self.cap.read()
  27.         results = self.model.predict(source=frame, iou=0.5, verbose=False, imgsz=[736, 1280])
  28.         results_json =  results[0].to_json(normalize=True, decimals=5)
  29.        
  30.         msg = String()
  31.         msg.data = results_json
  32.         self.publisher_.publish(msg)
  33.         cv2.imshow("detcatdo", results[0].plot())
  34.         cv2.waitKey(1)
  35.         self.get_logger().info('Publishing: "%s"' % msg.data)
  36.  
  37.  
  38. def main(args=None):
  39.     rclpy.init(args=args)
  40.  
  41.     yolo_detect = YoloDetect()
  42.  
  43.     rclpy.spin(yolo_detect)
  44.  
  45.     yolo_detect.destroy_node()
  46.     rclpy.shutdown()
  47.  
  48.  
  49. if __name__ == '__main__':
  50.     main()
Advertisement
Add Comment
Please, Sign In to add comment