Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV上的Libpng冲突?_Opencv_Conflict_Libpng_Conflicting Libraries - Fatal编程技术网

OpenCV上的Libpng冲突?

OpenCV上的Libpng冲突?,opencv,conflict,libpng,conflicting-libraries,Opencv,Conflict,Libpng,Conflicting Libraries,我试图用以下代码在我的XCode 4.4(Mountain Lion)上打开png文件(适用于jpg文件) 但是OpenCV给了我一个错误: libpng warning: Application built with libpng-1.4.12 but running with 1.5.4 OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGet

我试图用以下代码在我的XCode 4.4(Mountain Lion)上打开png文件(适用于jpg文件)

但是OpenCV给了我一个错误:

libpng warning: Application built with libpng-1.4.12 but running with 1.5.4
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_opencv/opencv/work/OpenCV-2.4.2/modules/core/src/array.cpp, line 2482
libc++abi.dylib: terminate called throwing an exception
我的png文件似乎是使用较新的libpng创建的,而OpenCV使用的是较旧的libpng。那么我如何解决这个问题呢

编辑:更多信息


我使用的是OSX Mountain Lion和XCode 4.4,使用的是通过MacPorts安装的OpenCV 2.4.2。否。您的png文件没有问题。创建时使用的版本并不重要。它将是兼容的。问题在您的libpng库中

使用libpng-1.4.12构建的应用程序-这意味着您的可执行文件链接到libpng 1.4.12

但使用1.5.4运行-这意味着在运行时,您的可执行文件将使用库的1.5.4版本(可能是动态库)

OpenCV 2.4.2附带了libpng-1.5.9,这里似乎存在不匹配

无论如何,要解决这个问题,请确保在链接过程中使用OpenCV构建的libpng进行链接。如果您是动态链接,请确保您的librarypath首先包含OpenCV的第三方库路径

libpng warning: Application built with libpng-1.4.12 but running with 1.5.4
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_opencv/opencv/work/OpenCV-2.4.2/modules/core/src/array.cpp, line 2482
libc++abi.dylib: terminate called throwing an exception