2013-01-04 70 views
1

我正在嘗試使用imwrite() OpenCV函數。我想用.TIFF擴展名保存幀。我有的問題是保存的圖像被壓縮,所以我不能使用它們。任何想法如何我可以逃避這種壓縮?在opencv中保存幀而不壓縮

在此先感謝

回答

1

按照documentation OpenCV的唯一公開了一組有限的選項寫入圖像文件。 其中不屬於TIFF文件。

所以,除非你想使用自己的功能或修改OpenCV源代碼,否則這是不可能的。 我建議使用另一個未壓縮的格式來保存像PXM或BMP這樣的幀,除非你有一些具體的理由使用TIFF文件。

2

不介意sietschie說什麼。 TIFF標誌在LZW壓縮的opencv二進制文件中被硬編碼。你可以關掉它(註釋掉)或改變它。 在:

3rdparty/libtiff/tiff.h 

刪除此行:

#define  COMPRESSION_LZW  5  /* Lempel-Ziv & Welch */ 

然後編譯。普雷斯托。 除此之外的其他Tiff選項會自動設置(8位,16位,顏色,rgb,rgba等),具體取決於您的圖像

+1

只要改變5爲1(COMPRESSION_NONE),否則你將有修復幾個地方。 – laishiekai

0

最簡單的方法是重新編譯OpenCV或直接使用libtiff,但我認爲不是很好的主意改變3rdparty/libtiff/tiff.h:在這個修改之後,你不能使用OpenCV保存壓縮的TIFF文件,而在非Windows系統下,你通常有單獨的libtiff(而不是OpenCV的一部分)。

我建議更簡單的方法(仍然OpenCV的重新編譯,但你保存書寫壓縮的TIFF的可能性,不直接改變的libtiff): saving uncompressed TIFFs with OpenCV