web-dev-qa-db-fra.com

Installer opencv 3.1 avec anaconda python3?

Comment installer opencv avec anaconda python3, opencv a récupéré mes exécutables python3

--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.12)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)
--     packages path:               lib/python2.7/dist-packages
-- 
--   Python 3:
--     Interpreter:                 /home/tamim/anaconda3/bin/python3 (ver 3.5.2)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.5m.so (ver 3.5.2)
--     numpy:                       /home/tamim/anaconda3/lib/python3.5/site-packages/numpy/core/include (ver 1.11.1)
--     packages path:               lib/python3.5/site-packages
-- 
--   Python (for build):            /usr/bin/python2.7

J'ai installé opencv avec les options de make suivantes

cmake -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 ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..

Mais après l'avoir installé, je ne peux pas importer cv2 dans python3 d'anaconda. Je peux cependant importer cv2 à partir de la commande python2 intégrée. Je suppose donc qu'il est construit pour la version python2 comme indiqué dans la dernière ligne.

Comment créer pour anaconda python3?

24
Tamim Addari

Je pense que vous n'avez pas besoin de construire OpenCV pour anaconda, il y a cet outil très pratique appelé 'conda' qui est disponible dans votre terminal une fois que vous avez installé la distribution Anaconda python.

J'ai trouvé ce site qui donne des instructions sur la façon d'installer opencv3

https://anaconda.org/menpo/opencv3

Je l'ai personnellement installé moi-même, essayez donc de suivre ces instructions.

Si la distribution Anaconda python installée sur votre système, vous pouvez lancer cette commande (en supposant que vous travaillez sur linux) lancer le terminal:

conda install -c menpo opencv

Si la version de python install dans votre Anaconda est 2.7, la commande ci-dessus devrait installer OpenCV 3.1, mais si la version de votre python est 3.5, alors vous devrait changer "opencv" dans la dernière ligne en "opencv3"

conda install -c menpo opencv3

Cela devrait installer OpenCV dans votre Anaconda. Pour voir si vous l'avez installé avec succès, lancez votre Python et exécutez la commande suivante:

import cv2 # import the opencv library

cv2.__version__ # this will print the version of your opencv3

J'espère que ça aide =)

39
stevenferrer

Si vous obtenez une erreur comme celle-ci:

    UnsatisfiableError: The following specifications were found to be in conflict:
            opencv 2.4.11* -> numpy 1.9* -> python 2.6* -> openssl 1.0.1*
            python 3.6*
            Use "conda info " to see the dependencies for each package.

Installez simplement python 3.5 et réessayez.

conda install python=3.5
conda install -c menpo opencv  # whichever
conda install -c menpo opencv3 # you need
22
mimoralea

Essayez cette méthode, cela a fonctionné pour moi. Anaconda3-4

conda create -n opencv 
activate opencv
conda install -c https://conda.binstar.org/menpo opencv3
10
Nandan Lahurikar

Aucune des méthodes ci-dessus n'a fonctionné pour moi. Cependant, j'ai trouvé que cette doublure fonctionne pour moi:

conda install -c conda-forge opencv
6

Avec conda v4.3.16 et python v3.6 cette commande a fonctionné pour moi:

conda install -c anaconda opencv
4
hcole

Si vous souhaitez compiler opencv sur un environnement anaconda spécifique, vous pouvez spécifier le PYTHON_EXECUTABLE, PYTHON_INCLUDE et PYTHON_LIBRARY, PYTHON_PACKAGES_PATH, PYTHON_NUMPY_INCLUDE_DIR variables dans cmake.

Dans l'exemple suivant, j'ai un environnement anaconda opencv340 situé dans/home/yourself/anaconda3/envs/opencv340 et je vais donc spécifier les variables ci-dessus pour cmake comme suit:

-DPYTHON_EXECUTABLE=/home/yourself/anaconda3/envs/opencv340/bin/python3 \
-DPYTHON_INCLUDE=/home/yourself/anaconda3/envs/opencv340/include \
-DPYTHON_LIBRARY=/home/yourself/anaconda3/envs/opencv340/lib/libpython3.6m.so \
-DPYTHON_PACKAGES_PATH=/home/yourself/anaconda3/envs/opencv340/lib/python3.6/site-packages \
-DPYTHON_NUMPY_INCLUDE_DIR=/home/yourself/anaconda3/envs/opencv340/lib/python3.6/site-packages/core/include

Vous verrez alors que opencv choisit le bon python, celui de l'environnement anaconda dont vous avez donné le chemin.

Vous copiez ensuite le cv2 * .so de votre répertoire de construction opencv vers le site-packages de votre environnement anaconda.

Votre site-packages le répertoire doit être situé quelque part comme:

/home/yourself/anaconda3/envs/opencv340/lib/python3.6/site-packages

Vous pouvez obtenir l'emplacement réel à partir d'une console python avec:

>>> import sys
>>> print(next(p for p in sys.path if 'site-packages' in p))

Ensuite (adaptez-vous en fonction de votre cas et du nom réel cv2 * .so):

cp /path/to/your/opencv/build/directory/lib/python3.6/site-packages/cv2.cpython-36m-x86_64-linux-gnu.so /home/yourself/anaconda3/envs/opencv340/lib/python3.6/site-packages/.

Et vous devriez pouvoir import cv2 à partir d'une console python.

Je viens de le faire (Ubuntu 16.04).

2
calocedrus

conda: 4.7.1, python: .7., canal: par défaut

L'installation de opencv à partir du canal default a fonctionné pour moi. J'ai installé dans un environnement propre et je n'ai eu aucun conflit.

conda install opencv
The following NEW packages will be INSTALLED:

  blas               pkgs/main/osx-64::blas-1.0-mkl
  bzip2              pkgs/main/osx-64::bzip2-1.0.8-h1de35cc_0
  cairo              pkgs/main/osx-64::cairo-1.14.12-hc4e6be7_4
  ffmpeg             pkgs/main/osx-64::ffmpeg-4.0-h01ea3c9_0
  fontconfig         pkgs/main/osx-64::fontconfig-2.13.0-h5d5b041_1
  freetype           pkgs/main/osx-64::freetype-2.9.1-hb4e5f40_0
  gettext            pkgs/main/osx-64::gettext-0.19.8.1-h15daf44_3
  glib               pkgs/main/osx-64::glib-2.56.2-hd9629dc_0
  graphite2          pkgs/main/osx-64::graphite2-1.3.13-h2098e52_0
  harfbuzz           pkgs/main/osx-64::harfbuzz-1.8.8-hb8d4a28_0
  hdf5               pkgs/main/osx-64::hdf5-1.10.2-hfa1e0ec_1
  icu                pkgs/main/osx-64::icu-58.2-h4b95b61_1
  intel-openmp       pkgs/main/osx-64::intel-openmp-2019.4-233
  jasper             pkgs/main/osx-64::jasper-2.0.14-h636a363_1
  jpeg               pkgs/main/osx-64::jpeg-9b-he5867d9_2
  libgfortran        pkgs/main/osx-64::libgfortran-3.0.1-h93005f0_2
  libiconv           pkgs/main/osx-64::libiconv-1.15-hdd342a3_7
  libopencv          pkgs/main/osx-64::libopencv-3.4.2-h7c891bd_1
  libopus            pkgs/main/osx-64::libopus-1.3-h1de35cc_0
  libpng             pkgs/main/osx-64::libpng-1.6.37-ha441bb4_0
  libtiff            pkgs/main/osx-64::libtiff-4.0.10-hcb84e12_2
  libvpx             pkgs/main/osx-64::libvpx-1.7.0-h378b8a2_0
  libxml2            pkgs/main/osx-64::libxml2-2.9.9-hf6e021a_1
  mkl                pkgs/main/osx-64::mkl-2019.4-233
  mkl_fft            pkgs/main/osx-64::mkl_fft-1.0.12-py37h5e564d8_0
  mkl_random         pkgs/main/osx-64::mkl_random-1.0.2-py37h27c97d8_0
  numpy              pkgs/main/osx-64::numpy-1.16.4-py37hacdab7b_0
  numpy-base         pkgs/main/osx-64::numpy-base-1.16.4-py37h6575580_0
  opencv             pkgs/main/osx-64::opencv-3.4.2-py37h6fd60c2_1
  pcre               pkgs/main/osx-64::pcre-8.43-h0a44026_0
  pixman             pkgs/main/osx-64::pixman-0.38.0-h1de35cc_0
  py-opencv          pkgs/main/osx-64::py-opencv-3.4.2-py37h7c891bd_1
  zstd               pkgs/main/osx-64::zstd-1.3.7-h5bba6e5_0
$python                                                                                                
Python 3.7.3 (default, Mar 27 2019, 16:54:48)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.2'
>>>
0
Ryan H.