C ++:opencv上的libpng冲突

时间:2017-07-26 17:18:51

标签: c++ opencv g++ libpng

我试图使用opencv2读取png文件,我收到以下错误。

libpng warning: Application built with libpng-1.2.53 but running with 1.6.27
OpenCV Error: Assertion failed (dsize.area() > 0 || (inv_scale_x > 0 && inv_scale_y > 0)) in resize, file /home/dpk/Desktop/opencv/opencv/modules/imgproc/src/imgwarp.cpp, line 3484

我的系统上有libpng 1.6.27。 Opencv是使用命令cmake -D BUILD_PNG=OFF /home/dpk/Desktop/opencv构建的,以避免opencv中的库与我系统中的库之间发生冲突。

我编译需要读取png的程序,如下所示

g++ preProcess.cpp -I/usr/local/include/libpng16 `pkg-config opencv --cflags --libs` -o preProcess

二进制文件的ldd输出为libpng

提供以下内容
libpng16.so.16 => /usr/local/lib/libpng16.so.16 

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

从OpenCV的CMakeLists.txt来看,您必须设置WITH_PNG=OFF,而不是BUILD_PNG