2015-05-29 66 views
2

我目前正在開發一個項目,爲OpenCV 3.0 beta添加一個新模塊,所以我試圖用我自己的Python編譯版本(就像C++版本一樣) 。在特定版本的OpenCV中使用python

因爲我不想搞亂已經安裝的OpenCV和Python版本,所以我沒有添加到ldconfig我的OpenCV 3.0 beta的特定構建/安裝,我想在可能的情況下在python virtualenv中使用它。

到目前爲止,我已經設置了VENV既然CV2不能訪問它,我更新PYTHONPATH添加含有cv2.so文件(sudo apt-get install python-opencv創建)的文件夾。然而,這不是OpenCV的結合的正確版本被加載:

$ python -c "import cv2; print cv2.__version__" 
2.4.8 

有什麼我可以做任何想法?

EDIT(感謝@otibom):

我的體型似乎是爲什麼我沒有正確的cv2.so文件的原因。 cmake的結果是:

-- Python 2: 
--  Interpreter:     /usr/bin/python2.7 (ver 2.7.6) 
--  Libraries:     NO 
--  numpy:      /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2) 
--  packages path:    lib/python2.7/dist-packages 

有沒有辦法糾正這種情況?

回答

0

編譯OpenCV 3.0將創建自己的cv2.so文件,其中包含您的新模塊,通常位於您的opencv3-0-0-beta/build目錄中。您需要將OpenCV 3.0 build目錄添加到PYTHONPATH而不是apt-get創建的目錄。

+0

謝謝你有幫助,你確認。其實我意識到這個文件不是用我的版本創建的。這可能是因爲我認爲我有另一個問題(剛纔意識到它,因爲我之前沒有在Python中使用OpenCV):cmake確實找到Python的二進制文件,而不是庫。我會更新我的問題,所以它更清晰 –

+0

其實我解決了「查找庫」問題並重新編譯,但我沒有在構建目錄中找到該文件:'find -iname「cv2.so」'沒有給我提供任何信息。它究竟應該在哪裏? –

+0

沒關係,我忘了在RELEASE模式下編譯,也許這就是爲什麼文件沒有生成的原因 –

1

關於「未找到庫」問題,我刪除了文件CMakeCache.txt,並在下面的cmake命令中找到了python庫。 (但我不知道爲什麼會發生)

+0

我在Windows下有同樣的問題(Python庫一直在禁用);最後,我看了一下Python模塊的'CMakeLists.txt',發現啓用「Build_opencv_world」這個選項會禁用Python庫。 – JPNotADragon