我正在尝试使用以下代码在 XCode 4.4 (Mountain Lion) 上打开 png 文件(适用于 jpg 文件)
Mat image = imread( "/Users/user_name/Desktop/result.png" );
imshow( "", image );
waitKey( 0 );
但是 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。如果您要动态链接,请确保您的库路径首先包含 OpenCV 的第 3 方库路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)