我有一个机器人操作系统(ROS).bag文件,其中包含带有sensor_msgs / CompressedImage消息形式的.jpg压缩图像。我编写了一个roscpp程序,可以访问各个消息中的原始数据,但是我很难将原始jpg编码数据数组保存到文件中。
不幸的是,我所拥有的包文件非常大,包含数千张图片,而且我在时间限制下工作。我尝试使用rosbag play -i和image_view导出来保存图像,但速度太慢了。我也尝试使用Python,但是Python很慢,而且我没有办法保存图像(与C ++中的问题相同)。
基本上,我需要一种方法来为我的数据添加有效的jpg标头并将其保存在文件中。任何建议都表示赞赏!
答案 0 :(得分:0)
为应该已经是图像的数据块创建图像标头可能不是正确的方法。毕竟,jpegs很复杂,数据流应该具有解码它们所需的所有信息......这些工具怎么能够显示给你?
通过查看第一个和最后一个字节,您可以很好地了解二进制blob是否包含图像。例如,Jpegs以FF D8
开头,以FF D9
结尾。其他文件的一些神奇数字可以在这里找到:https://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files