opencv 2.4.5无法在Windows中正确加载tif图像文件

时间:2014-03-11 18:54:10

标签: opencv mingw tiff image-compression

我在imreadcvLoadImage上打开的tif图片很少在窗口中显示null data,而在ubuntu安装时可以方便地处理同一文件。

运行imagemagik identify返回

$identify 60018969.tif 
60018969.tif[0] TIFF 1696x2192 1696x2192+0+0 8-bit Grayscale DirectClass 516KB 0.000u 0:00.040
60018969.tif[1] TIFF 1696x2192 1696x2192+0+0 8-bit Grayscale DirectClass 516KB 0.000u 0:00.030
60018969.tif[2] TIFF 1696x2376 1696x2376+0+0 8-bit Grayscale DirectClass 516KB 0.000u 0:00.019
60018969.tif[3] TIFF 1696x2376 1696x2376+0+0 8-bit Grayscale DirectClass 516KB 0.000u 0:00.019
identify: 60018969.tif: wrong data type 4 for "JpegProc"; tag ignored. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/706.

经过大量的谷歌搜索,opencv可以读取未压缩的tiff图像,但对于压缩类型,需要tiff libtiff。我尝试多次重新安装/重新配置opencv,但找不到加载压缩tiff图像的方法。

在OpenCV 2.4.9的ubuntu安装中处理相同的图像。我需要在windows中为opencv libtiff构建哪种编解码器?如何?

请帮助。

编辑:随着时间的推移。我尝试使用libtiff库读取文件,但无法读取错误"deprecated and troublesome old-style jpeg compression mode please convert to new-style jpeg compression"的文件。我确保libtiff安装了以下编解码器

Support for external codecs:
ZLIB support:                       yes
Pixar log-format algorithm:         yes
JPEG support:                       yes
Old JPEG support:                   yes
JPEG 8/12 bit dual mode:            no
ISO JBIG support:                   yes
LZMA2 support:                      no
C++ support:                        yes
OpenGL support:                     no

询问example tiff file

的示例文件

1 个答案:

答案 0 :(得分:1)

你应该知道“旧式JPEG”TIFF是微软(IIRC)在没有咨询任何人的情况下被TIFF加入TIFF的扩展,他们的表现相当糟糕。在所有TIFF压缩方案中,存在“有趣”的情况,这些情况不符合规范,并且或多或少被黑客入侵各种编解码器以实现兼容性,但旧式JPEG在这方面是所有国王的王者,而且我是垃圾看到(我为一家制作TIFF编解码器的公司工作)会让你的头发变白。我知道有一个事实,我们至少有六类旧式JPEG TIFF,我们可以读到libtiff不能。