Search code examples
pythonopencvdllapriltags

Python pupil_Apriltags : Problem with DLL path "Could not find module"


Hello I have a problem with pupil_apriltags in python. I have been searching for more than 1 week and tried multiple solutions but none of them worked.

My problem is not with the import of the librairy but when I try to create the detector. There is a reference to a xxxx.dll file (I think) which does not work.

My code

Very simple

from pupil_apriltags import Detector
import cv2
import numpy as np


at_detector = Detector(families='tag36h11',
                       nthreads=1,
                       quad_decimate=1.0,
                       quad_sigma=0.0,
                       refine_edges=1,
                       decode_sharpening=0.25,
                       debug=0)

My error

Traceback (most recent call last):                                                                                  
File "detection_apriltags.py", line 6, in <module>                                                                        
at_detector = Detector()                                                                                              
File "C:\Users\Utilisateur\anaconda3\lib\site-packages\pupil_apriltags\bindings.py", line 285, in __init__
self.libc = ctypes.CDLL(str(hit))                                                                                     
File "C:\Users\Utilisateur\anaconda3\lib\ctypes\__init__.py", line 381, in __init__                                       
self._handle = _dlopen(self._name, mode)                                                                            
FileNotFoundError: Could not find module 'C:\Users\Utilisateur\anaconda3\lib\site-
packages\pupil_apriltags\lib\apriltag.dll' (or one of its dependencies). Try using the full path 
with constructor syntax.

My configuration

  • Python 3.8.5
  • Windows 10

Solution

  • so i didn't find the solution with pupils-Apriltags (on Windows) but i discorver Aruco which is derectly in Opencv ( with the package : opencv-contrib-python, at this day).

    arucoDict = cv2.aruco.Dictionary_get(cv2.aruco.DICT_4X4_50) 
    arucoParams = cv2.aruco.DetectorParameters_create()
    (corners, ids, rejected) = cv2.aruco.detectMarkers(image, arucoDict,parameters=arucoParams)