cv_connection.hpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef OPEN_CV_CONNECTOR
  2. #define OPEN_CV_CONNECTOR
  3. #include <ros/ros.h>
  4. #include <image_transport/image_transport.h>
  5. #include <string>
  6. #include <iostream>
  7. #include <utility>
  8. #include <thread>
  9. #include <chrono>
  10. #include <camera_info_manager/camera_info_manager.h>
  11. class OpenCVConnector {
  12. public:
  13. // Variables
  14. //sensor_msgs::Image img_msg; // >> message to be sent
  15. sensor_msgs::ImagePtr * img_msg;
  16. std_msgs::Header header; // empty header
  17. ros::NodeHandle nh;
  18. image_transport::ImageTransport it;
  19. image_transport::Publisher pub;
  20. std::string topic_name;
  21. ros::Time ROStime;
  22. ros::Time ROStimemain;
  23. unsigned int counter = 0;
  24. size_t csiPort;
  25. uint32_t cameraIdx;
  26. // Camera info
  27. sensor_msgs::CameraInfo camera_info;
  28. camera_info_manager::CameraInfoManager info_manager_;
  29. ros::Publisher pubCamInfo;
  30. bool do_rectify;
  31. // Compress img_msg
  32. ros::Publisher pub_comp;
  33. // Methods
  34. OpenCVConnector( std::string topic_name,size_t csiPort, uint32_t cameraIdx, std::string , std::string camera_type_name , bool do_rectify);
  35. ~OpenCVConnector();
  36. void loadCameraInfo();
  37. void WriteToOpenCV(unsigned char*, int, int);
  38. void WriteToOpenCV_reduced(unsigned char*, int, int, int ,int);
  39. void WriteToRosPng(unsigned char*, int, int);
  40. void WriteToOpenCVJpeg(unsigned char*, int, int);
  41. void PublishJpeg(uint8_t* , uint32_t );
  42. };
  43. #endif