39 const std::shared_ptr<apollo::drivers::CompressedImage>& compressed_image) {
40 auto image = std::make_shared<Image>();
41 image->mutable_header()->CopyFrom(compressed_image->header());
42 if (compressed_image->has_measurement_time()) {
43 image->set_measurement_time(compressed_image->measurement_time());
45 image->set_measurement_time(compressed_image->header().timestamp_sec());
47 std::vector<uint8_t> compressed_raw_data(compressed_image->data().begin(),
48 compressed_image->data().end());
49 cv::Mat mat_image = cv::imdecode(compressed_raw_data, cv::IMREAD_COLOR);
50 cv::cvtColor(mat_image, mat_image, cv::COLOR_BGR2RGB);
51 image->set_width(mat_image.cols);
52 image->set_height(mat_image.rows);
54 image->set_encoding(
"rgb8");
55 image->set_step(3 * image->width());
57 auto size = mat_image.step * mat_image.rows;
58 image->set_data(&(mat_image.data[0]), size);
59 writer_->Write(image);