pupil-labs / pupil-detectors

GNU Lesser General Public License v3.0
24 stars 18 forks source link

Utilized OpenCV Version #5

Closed KarlKulator closed 4 years ago

KarlKulator commented 4 years ago

When installing pupil-detectors via pip install pupil-detectors I get the following error when importing with from pupil_detectors import Detector2D, Detector3D:

/usr/local/lib/python3.6/dist-packages/pupil_detectors/detector_2d/detector_2d.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN2cv12findContoursERKNS_11_InputArrayERKNS_12_OutputArrayEiiNS_6Point_IiEE

I guess my OpenCV version (3.4.6) is not compatible. What version do I need?

pfaion commented 4 years ago

Hi @KarlKulator, I think if your opencv version would be incompatible, the installation should already fail. We don't ship precompiled versions of pupil-detectors for linux yet, so when running pip install pupil-detectors, the library will build itself against your local opencv version. We have been able to run this with multiple different versions of opencv so far (from 3.2.0 to 4.1.1) as the required APIs did not change.

What version of linux are you running and how did you install opencv?

Since pupil-detectors is heavily inspired by Pupil, is there any change you have been working with Pupil before? Were you able to run Pupil from source on your machine?

Also, can you try importing opencv before pupil-detectors, as in:

import cv2
from pupil_detectors import Detector2D, Detector3D
# ...
KarlKulator commented 4 years ago

Hi @pfaion,

I solved the problem. The cause was a parallel installation of opencv4 next to opencv 3.4. You seem to prioritize opencv4 includes but opencv 3.4 libs.