三通道浮點型數據存儲到圖片中

在實際工作中,會遇到需要將浮點型數據(float或者double)的數據存在一張圖中的問題,例如需要將有序點雲的x y z座標存在一張標準格式的圖片中便於後續使用(halcon的3D匹配可用)。然而,大多數情況下,圖片只能以整型的形式被存儲在圖片中,例如.bmp .jpeg .png等等,無法滿足浮點數據存儲的要求。但是,好在有一種牛逼的圖像文件格式——TIFF,幾乎可以存儲所有的數據,甚至包括字符串。。。而且該格式文件還獨立於操作系統,使用十分方便!

但是,使用TIFF格式存儲浮點型數據並非易事!我花了近兩天的時間,想了各種辦法去將三通道的浮點數據存進TIFF圖片中,遇到了許多的問題,要麼是無法正確保存浮點數據(單通道可以),要麼是保存的浮點數據不能被一些軟件正常打開。。。當然,我也嘗試了用OpenCV的API函數imwrite,並且設置各種param,但是還是不行(可能是我的param沒有設置正確。。。),網上搜了大量的資料,也問了不少人。。。總是無法搞定這個看似簡單的問題。

最終,我嘗試使用TIFF的源碼!通過直接製作TIFF格式的文件,終於成功了!鏈接TIFF庫文件:http://www.libtiff.org/

------

關鍵參數設置如下:

保存成功的圖片屬性如下:

加載圖片後的數據如下:

------------

成功搞定TIFF的浮點數據存儲具有很大的意義,因爲這樣三維重建得到的有序點雲數據就可以直接用圖片的形式呈現了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章