Привязка пакета OpenCV Anaconda - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь импортировать несвободные библиотеки (такие как SIFT surf SURF), которые недоступны в пакетах Conda для opencv 4, но доступны через компиляцию исходного кода OpenCV с флагом OPENCV_ENABLE_NONFREE = ON для c ++ и python, а также Он прекрасно работает без виртуальной среды. Но я хочу использовать те же скомпилированные библиотеки в виртуальной среде Anaconda. Я следовал инструкции на https://pydeeplearning.com/opencv/install-opencv3-with-anaconda-python3-6-on-ubuntu-18-04/ и некоторых других подобных инструкциях, но не смог пройти через следующую ошибку :

    Python 3.7.6 (default, Jan  8 2020, 19:59:22) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.12.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import cv2                                                                                                    
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-c8ec22b3e787> in <module>
----> 1 import cv2

/opt/anaconda3/lib/python3.7/site-packages/cv2/__init__.py in <module>
     94     if DEBUG: print('OpenCV loader: DONE')
     95 
---> 96 bootstrap()

/opt/anaconda3/lib/python3.7/site-packages/cv2/__init__.py in bootstrap()
     84     if DEBUG: print('OpenCV loader: replacing cv2 module')
     85     del sys.modules['cv2']
---> 86     import cv2
     87 
     88     try:

ImportError: /lib/x86_64-linux-gnu/librsvg-2.so.2: undefined symbol: cairo_tag_end

1 Ответ

0 голосов
/ 02 апреля 2020

Вот как я мог, наконец, использовать sift и surf в среде anaconda: установите пакеты opencv- python и opencv-contrib- python, используя менеджер пакетов pip, с помощью следующей команды

pip install opencv -contrib- python opencv- python

Наконец-то рекомендуется использовать sift = cv2.xfeatures2d.SIFT.creat () use sift = cv2.xfeatures2d_SIFT ()

...