安装了python opencv 2.4.11,但只在系统中显示我只安装了2.4.8

2024-04-19 23:13:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我按照这个链接安装了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


Tags: https命令版本githubcom链接cv2opencv
1条回答
网友
1楼 · 发布于 2024-04-19 23:13:56

更新: 从您的ls -l /usr/local/lib | grep opencv的输出看来,静态OpenCV库是构建的。由于指令中第21行的-D BUILD_SHARED_LIBS=OFF标志。您只需从该行中删除-D BUILD_SHARED_LIBS=OFF,然后重新检查安装过程,以便进行全新安装,或者只需使用当前状态运行以下3行:

cmake -G "Unix Makefiles" -D CMAKE_CXX_COMPILER=/usr/bin/g++ CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D BUILD_FAT_JAVA_LIB=ON -D INSTALL_TO_MANGLED_PATHS=ON -D INSTALL_CREATE_DISTRIB=ON -D INSTALL_TESTS=ON -D ENABLE_FAST_MATH=ON -D WITH_IMAGEIO=ON -D WITH_GSTREAMER=ON ..
make all -j4 # 4 cores
sudo make install

。这应该可以构建共享的OpenCV库,希望它能解决您的问题。如果出于某种原因,您仍然得到相同的错误,那么请使用我剩下的答案(如下)来解决问题:

出于某种原因,您要导入的python模块cv2来自opencv2.4.8,它是在您根据所遵循的指令运行第11行时安装的(特别是这个命令: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的输出,而不是查看输出的许多行。 你应该会看到这样的东西:

^{pr2}$

案例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以确保您看到所列的cv2cv(请参见下面的行示例)

$ ls -l /usr/local/lib/python2.7/dist-packages/ | grep cv
-rw-r r   1 root staff  1638779 Jul 13 18:29 cv2.so
-rw-r r   1 root staff       21 Feb 25 07:10 cv.py

然后,看看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 (0x00007f0df24e2000)
libopencv_flann.so.2.4 => /usr/local/lib/libopencv_flann.so.2.4 (0x00007f0df226e000)
libopencv_imgproc.so.2.4 => /usr/local/lib/libopencv_imgproc.so.2.4 (0x00007f0df1d7f000)
libopencv_highgui.so.2.4 => /usr/local/lib/libopencv_highgui.so.2.4 (0x00007f0df1ad2000)

仔细查看输出的第一行:(例如) 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的输出如下:

libopencv_core.so -> libopencv_core.so.2.4
libopencv_core.so.2.4 -> libopencv_core.so.2.4.8

这意味着您在构建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时自动完成)

相关问题 更多 >