libpng错误:IDAT:MAC OSX 10.9中的无效距离太远



我已经在MAC OSX 10.9中安装了带有libstdc++brew install opencv的opencv2.4.9。

我尝试imread来自INRIA行人数据库的图像。问题是,当我使用opencv读取PNG格式的图像时,我总是会收到以下错误:
libpng error: IDAT: invalid distance too far back

libpng的版本是1.6.13,也是通过brew install命令安装的。

有人能帮我吗?非常感谢。

我刚刚解决了这个问题。首先是brew uninstall libpngbrew uninstall opencv。然后是brew install libpng12brew install --build-from-source --fresh -vd opencv。在此过程中,还会安装libpng。即使同时安装了libpnglibpng12,opencv也只会使用libpng12

我想INRIA数据库中的图像可能对libpng-1.6.13库有点旧。因此,我们必须使用旧的libpng版本libpng12来读取它

更新日期:2014.10.29

我找到了另一种方法来解决这个问题。这样更好。首先,brew edit opencv,然后转到包含depends_on :libpng的行。然后,按"i"并切换到编辑模式。将CCD_ 17改变为CCD_。按:wq保存。最后,brew install opencv

通过这样做,opencv将使用libpng12而不是libpng16进行编译。

最新更新