ROS 메시지 유형별 데이터 이해

1243 단어 updating

1.sensor_msgs::Image

  • 데이터는 rgbrgb... 방식으로 그림을 저장합니다
  • txt에 저장된 데이터를 Opencv로 표시
  • #include 
    #include 
    #include 
    
    using namespace std;
    
    int data[3 * 640 * 480];
    
    void array2mat(const std::vector data, int width, int height)
    {
      cv::Mat src = cv::Mat::zeros(height, width, CV_8UC3);
      for (int i = 0; i < height; ++i) 
      {
        for (int j = 0; j < width; j++)
        {
          src.at<:vec3b>(i, j)[0] = data[(width * i + j)*3+2];
          src.at<:vec3b>(i, j)[1] = data[(width * i + j)*3+1];
          src.at<:vec3b>(i, j)[2] = data[(width * i + j)*3];
          //cout << (int)src.at<:vec3b>(i, j)[0] << endl;
          //cout << (int)src.at<:vec3b>(i, j)[1] << endl;
          //cout << (int)src.at<:vec3b>(i, j)[2] << endl;
        }
      }
      cv::imshow("img", src);
      cv::waitKey(10);
    }
    
    void CallBack(const sensor_msgs::Image::ConstPtr& img) {
      printf("%d  %d
    ", img->height, img->width); array2mat(img->data, img->width, img->height); }

    좋은 웹페이지 즐겨찾기