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

时间:2014-08-28 08:12:35

标签: opencv libpng

我在MAC OSX 10.9中通过libstdc++安装了opencv2.4.9和brew install opencv

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

libpng的版本是1.6.13,它也是由brew install命令安装的。

任何人都可以帮我吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

我刚刚解决了这个问题。首先,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的行。 然后,按“我'并切换到编辑模式。将depends_on :libpng更改为depends_on "libpng12"。按:wq保存。 最后,brew install opencv

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