【发布时间】:2018-01-02 04:00:35
【问题描述】:
我正在尝试使用 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
我该如何解决这个错误?
【问题讨论】:
-
当我查看 repo 中的 3rdparty 目录时,即使在 2010 年也有比 1.2.53 更新的 LibPNG 版本,所以看起来这不是它的来源。您是否碰巧在您的系统上安装了其他一些 OpenCV 副本,它会意外使用?
pkg-config opencv --cflags --libs的输出有意义吗?