56 ADEBUG <<
"procing compressed";
58 image->height() != height_ || image->width() != width_)) {
59 AERROR <<
"Setting resolution is " << width_ <<
"x" << height_ <<
60 ", but received " << image->width() <<
"x" << image->height();
63 auto compressed_image = image_pool_->GetObject();
64 compressed_image->mutable_header()->CopyFrom(image->header());
65 compressed_image->set_frame_id(image->frame_id());
66 compressed_image->set_measurement_time(image->measurement_time());
67 compressed_image->set_height(height_);
68 compressed_image->set_width(width_);
70 compressed_image->set_format(image->encoding() +
"; jpeg compressed bgr8");
72 std::vector<int> params;
74 params[0] = cv::IMWRITE_JPEG_QUALITY;
78 cv::Mat mat_image(image->height(), image->width(), CV_8UC3,
79 const_cast<char*
>(image->data().data()), image->step());
81 cv::cvtColor(mat_image, tmp_mat, cv::COLOR_RGB2BGR);
82 std::vector<uint8_t> compress_buffer;
83 if (!cv::imencode(
".jpg", tmp_mat, compress_buffer, params)) {
84 AERROR <<
"cv::imencode (jpeg) failed on input image";
87 compressed_image->set_data(compress_buffer.data(), compress_buffer.size());
88 }
catch (std::exception& e) {
89 AERROR <<
"cv::imencode (jpeg) exception :" << e.what();
93 writer_->Write(compressed_image);