import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('12.jpg',0)
orb = cv2.ORB()
kp = orb.detect(img,None)
kp, des = orb.compute(img, kp)
img2 = cv2.drawKeypoints(img,kp,color=(0,255,0), flags=0)
plt.imshow(img2),plt.show()
I have added the numpy
and cv2
modules to my python directory and set their environment variables.
I also installed msvcp71.dll
and msvcr71.dll
, but this error has not solved.
So how can i fix this kind of dll problem?
Version information:
Python 3.2
numpy-1.6.1-win32-superpack-python3.2
opencv-3.0.0
I suspect you've mixed a x64 python
with x86 cv2.pyd
file, or vice versa. Simple way is to install a right version of opencv here: http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
See discussions here:
- ImportError: DLL load failed: %1 is not a valid Win32 application. But the DLL's are there
- How to use OpenCV in Python?
To check your python
arch:
In [2]: import platform
In [3]: platform.architecture()
Out[3]: ('64bit', 'WindowsPE')
and cv2.pyd
:
I suggest using PESnoop:
D:\Anaconda\Lib\site-packages> PESnoop cv2.pyd /pe_dh
-------------------------------------------------------------------------------
PESnoop 2.0 - Advanced PE32/PE32+/COFF OBJ,LIB command line dumper by yoda
-------------------------------------------------------------------------------
Dump of file: cv2.pyd...
Modus: 64bit Portable Executable Image...
discussions:
https://serverfault.com/questions/29958/how-to-tell-if-a-windows-application-requires-64-bit
How can I determine for which platform an executable is compiled?