libpng error: Invalid IHDR data

在用OpenCV读取图像的时候遇到这个问题,可是我很奇怪的是,我读取的明明是,ipg文件,为什么会报出png这个错误?

我的环境是unbuntu16.04 +OpenCV2.4.13,用cmake编译的。

我在build文件夹下cmake..的时候,发现OpenCV的依赖是这样的,

-- Found OpenCV: /opt/ros/kinetic (found version "3.2.0")

因为我安装了ROS,而kinetic又好像自带了OpenCV3的版本, 所以我猜测是不是应该在CMakeLists.txt里指定OpenCV2.4.13的路径,我这么设置了一下,

set(OpenCV_DIR /usr/local/share/OpenCV)
FIND_PACKAGE( OpenCV REQUIRED )

就是加上一句set(OpenCV_DIR /usr/local/share/OpenCV)的话,当然,每个人的路径可能不一样,根据你自己的安装路径去设置,

然后删除掉build文件夹里的所有东西再重新cmake ..下,然后就可以了。

我在想这其中应该也有可能是我读取的路径设置问题?

所以我目前觉得可能的原因有两个,一个是OpenCV的版本路径指定,另一个就是读取图片的路径,如果不确定是不是在当前目录下读取,就讲图片的读取路径设置为绝对路径吧。

你可能感兴趣的:(ubuntu)