【发布时间】:2017-06-16 07:49:49
【问题描述】:
我有一个机器人操作系统 (ROS) .bag 文件,其中包含 sensor_msgs/CompressedImage 消息形式的 .jpg 压缩图像。我编写了一个 roscpp 程序,可以访问单个消息中的原始数据,但是我很难将原始 jpg 编码数据数组保存到文件中。
不幸的是,我的包文件非常大,包含数千张图片,而且我的工作时间有限。我尝试使用 rosbag play -i 和 image_view export 来保存图像,但是太慢了。我也尝试过使用 Python,但是 Python 很慢,而且我没有办法保存图像(与 C++ 中的问题相同)。
本质上,我需要一种方法来为我的数据添加一个有效的 jpg 标头并将其保存在一个文件中。任何建议表示赞赏!
【问题讨论】:
-
尝试合成 jpeg 标头似乎是错误的方法...您需要的所有信息必须已经在源数据中,否则这些工具将如何向您显示它们?
-
源数据给了我一个字节数组,一个时间戳,并告诉我数据是 bgr8 jpg 编码的。我想我可以将数组保存到文件中看看是否可行?
-
值得一试。如果您查看初始和最终字节值,您也可以检查 jpeg 幻数... jpeg 文件应以
FF D8开头并以FF D9结尾 -
确实如此!伟大的。那么应该很容易:D
-
谜团解开了。我会添加它作为答案,以防它对其他人有用。