C++:opencv 上的 libpng 冲突

标签 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 

我该如何修复这个错误?

最佳答案

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

关于C++:opencv 上的 libpng 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45333574/

相关文章:

c++ - g++ 问题 : exception not caught

c++ - Pytorch/ATen C++ 中切片张量的等价

c++ - 为什么 SDL2 为音频样本提供的缓冲区不够大?

iphone - 如何改善iPhone应用程序的边缘检测?

c++ - 提取文本 OpenCV

c++ - 我怎样才能使 Eclipse C.D.T.认识 C++11 的特性?

c++ - G++ 4.8 中的 GLM 和原子

c++ - 调试断言失败 : invalid iterators

c++ - 我如何提供一个重载来接受一个 vector 参数?

visual-c++ - 如何在 CamShift 中平滑跟踪