opencv 将原始YUV422图像转换为RGB

eaf3rand  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(615)

我有一张原始图像,是从我的Jetson Nano上的csi_camera中提取出来的,编码为yuv422,我想把它转换成RGB编码,用于机器学习。我该怎么做呢?我已经尝试过在OpenCV中使用不同的cvtColor代码,但得到的图像仍然是一团糟。有没有办法把这张图像转换成“正常”的颜色?
以下是图像:csi_image

t3psigkw

t3psigkw1#

因此,我终于想出了如何使用以下代码转换图像:

for (rosbag::MessageInstance const m : rosbag::View(bag)) {
// Read only the input topic
if(m.getTopic() == topic) {
  // Create an image pointer to the bag file image messages
  sensor_msgs::ImageConstPtr imgPtr = m.instantiate<sensor_msgs::Image>();
  // Extract the image frame with yuv422 encoding
  image = cv_bridge::toCvCopy(imgPtr, "yuv422")->image;
  // Convert the image frame to a BGR format image
  cvtColor( image, newimage, COLOR_YUV2BGRA_YUY2 );

  // Write the new image to the out path
imwrite(final_path, newimage);
  count++;
}
}

我必须先添加toCvCopy(imgPtr, “yuv422”)->来指定传入的编码,然后转换为使用YUY2枚举。

相关问题