我按照这个链接安装了opencv2.4.11。但是当我打印当前的opencv版本时,它说它是2.4.8。谁能告诉我出了什么问题吗?谢谢。在
https://gist.github.com/dynamicguy/3d1fce8dae65e765f7c4
另外,我正在使用Ubuntu 14.04.2 LTS。检查opencv当前版本的命令是
进口cv2
打印cv2.版本
根据praveenplanisamy的建议,我将发布我运行命令的结果
ls-l/usr/local/lib | grep opencv
-rw-r--r--1根根1483006 7月26日21:33 libopencv_calib3d.a
-rw-r--r--1根根1850138 Jul 26 21:45 libopencv_contrib.a
-rw-r--r--1根根4811636 Jul 26 21:26 libopencv_core.a
-rw-r--r--1根根根1420516 Jul 26 21:29 libopencv_features2d.a
-rw-r--r--1根根1100238 Jul 26 21:26 libopencv_flann.a
-rw-r--r--1根根863666 Jul 26 21:39 libopencv_gpu.a
-rw-r--r--1根根目录1258032 7月26日21:28 libopencv_highgui.a
-rw-r--r--1根根4363758 7月26日21:28 libopencv_imgproc.a
-rw-r--r--1根根目录2400896 Jul 26 21:37 libopencv_legacy.a
-rw-r--r--1根根1051714 Jul 26 21:35 libopencv_ml.a
-rw-r--r--1根根目录411916年7月26日21:44 libopencv_nonfree.a
-rw-r--r--1根根目录954904 Jul 26 21:38 libopencv_objdetect.a
-rw-r--r--1根根目录3269948 7月26日21:41 libopencv_ocl.a
-rw-r--r--1根根187250 7月26日21:38 libopencv_photo.a
-rw-r--r--1根根部960120 Jul 26 21:46 libopencv_stitching.a
-rw-r--r--1根根目录543080 Jul 26 21:47 libopencv_superres.a
-rw-r--r--1根根1779168 Jul 26 21:29 libopencv_ts.a
-rw-r--r--1根根目录625806 7月26日21:29 libopencv_video.a
-rw-r--r--1根根目录508350 Jul 26 21:47 libopencv_videostab.a
更新: 从您的
ls -l /usr/local/lib | grep opencv
的输出看来,静态OpenCV库是构建的。由于指令中第21行的-D BUILD_SHARED_LIBS=OFF
标志。您只需从该行中删除-D BUILD_SHARED_LIBS=OFF
,然后重新检查安装过程,以便进行全新安装,或者只需使用当前状态运行以下3行:。这应该可以构建共享的OpenCV库,希望它能解决您的问题。如果出于某种原因,您仍然得到相同的错误,那么请使用我剩下的答案(如下)来解决问题:
出于某种原因,您要导入的python模块cv2来自opencv2.4.8,它是在您根据所遵循的指令运行第11行时安装的(特别是这个命令:
^{pr2}$sudo apt-get install libopencv-dev
)。 您遵循的指令中的第23行(sudo make install
)应该已经安装了OpenCV2.4.11作为默认的OpenCV库。这可以通过查看ls -l /usr/local/lib | grep opencv
的输出进行验证。 您可以通过查看ls -l /usr/local/lib | grep opencv_core
的输出,而不是查看输出的许多行。 你应该会看到这样的东西:案例1: 如果您看到的是上面的行,那么这意味着您的
sudo make install
工作正常,因此,默认的OpenCV库版本(由pkg-config libs opencv
指定)是2.4.11。然后,您需要查看python modules路径,以了解为什么cv2python模块来自OpenCV2.4.8,而不是OpenCV2.4.11。为此,您可以运行ls -l /usr/local/lib/python2.7/dist-packages/ | grep cv
以确保您看到所列的cv2和cv(请参见下面的行示例)然后,看看
ldd /usr/local/lib/python2.7/dist-packages/cv2.so | grep opencv
的输出,它应该如下所示:仔细查看输出的第一行:(例如)
libopencv_core.so.2.4 => /usr/local/lib/libopencv_core.so.2.4
。这是python模块/包装器使用的库。这应该指向libopencv_核心.so.2.4.11和非libopencv_核心.so.2.4.8。您可以使用前面使用的相同命令(ls -l /usr/local/lib | grep opencv
)验证libopencv_core.so.2.4
指向的位置。在案例2:
ls -l /usr/local/lib | grep opencv_core
的输出如下:这意味着您在构建OpenCV2.4.11时运行的
sudo make install
由于某种原因无法工作。然后您可以有两个选择:<1>选择 从
opencv-2.4.11/release
目录运行make && sudo make install
。然后按照上面的步骤查看是否看到这一行libopencv_核心.so.2.4->;libopencv_核心.so.2.4.11。如果您看到它,import cv2 print cv2.version
应该打印2.4.11。在选择2 如果您看到文件
libopencv_core.so.2.4.11
存在于/usr/local/lib
目录中,那么您只需创建一个symlink使默认的OpenCV库文件指向2.4.11版本(从OpenCV build目录运行sudo make install
时自动完成)相关问题 更多 >
编程相关推荐