2017-02-09 123 views
2

我一直致力於通過圖像處理本地化項目進行本地化,並且我們得到的數據集是.bag文件中的壓縮圖像,因此我有多種方法可以在開始時提取這些圖像嘗試以下方法:從ROS包中提取圖像時出錯

mkdir images 
cd ./images 
rosrun image_view extract_images _sec_per_frame:=0.01 image:=<IMAGETOPICINBAGFILE> 
run rosbag play <BAGFILE> 

,我曾嘗試使用啓動文件以及

<launch> 
    <node pkg="rosbag" type="play" name="rosbag" args="-d 2 /home/devo/datasets/Ch2_002/HMB_1.bag"/> 
    <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME" args="compressed"> 
    <remap from="image" to="/camera/image_raw"/> 
    <param name="image_transport" value="compressed"/> 
    </node> 
</launch> 

但它總是結束了給我同樣的錯誤

[錯誤] [1486685243.634766995]:客戶機[/ extract_images_1486684806987962257]想話題/ can_bus_dbw/CAN_RX有數據類型/的md5sum [sensor_msgs /圖像/ 060021388200f6f0f447d0fcd9c64743],但我們的版本有[dataspeed_can_msgs/CanMessageStamped/33747cb98e223cafb806d7e94cb4071f。斷開連接。

,所以我只是想知道我做了什麼錯了,我怎樣才能從包裏提取這些圖像(知道我的ROS版本:1.12.6)

回答

0

嘗試如下因素:

1-在可寫目錄:

$ rosrun image_view extract_images image:=<IMAGETOPICINBAGFILE> _image_transport:=compressed 

2 - 在另一端,發揮你的包文件

這應該保存您的IMA ges在那個目錄中。

現在,如果沒有工作,你確定你的image_transport壓縮是真的嗎?導致錯誤意味着同一主題上的發佈者和訂閱者具有不同的消息類型。這也可能發生,如果你的包使用不同的消息定義而不是你正在播放的消息定義的平臺創建。

編輯:

另一個周圍的辦法是解壓縮數據,然後保存。它是這樣的:

$rosrun image_transport republish compressed in:=<IMAGETOPICINBAGFILE> raw out:=image/raw 

$rosrun image_view image_saver image:=image/raw _save_all_image:=all _filename_format:=%04d.%s 

$ rosbag play <bagfile> 

希望幫助!

+0

我試過它的工作錯誤不再出現,但沒有圖像出現在文件夾中,我不知道圖像是否壓縮或實際上發佈者沒有提及,但我知道它包含JPG圖像可以你告訴我應該改變什麼才能使它工作 –

+0

嘗試以下命令:'$ rosrun image_view image_saver image:= _save_all_image:= all _filename_format:=%04d。%s'而不是第一個。 – Vtik

+0

錯誤回來了,我認爲圖像被壓縮...我試圖添加_image_transport:=壓縮但它沒有工作對不起,我仍然是新的這個,如果我的問題是轉儲 –