标签:opencv3.4 Python3.5 opencv-python ImportError DLL load failed
OpenCV近几年功能不断增强,目标检测、跟踪等方面出现了不少新算法。自3.3版开始,火热的深度神经网络的功能也加入其中。早期的OpenCV仅支持简单的视频播放功能,现在ffmpeg的部分功能也融入进来。为了验证新功能的效果,准备在Python下跑几个程序看看效果。不过,配置的过程还是有点小麻烦的。pip install opencv-python
import cv2 as cv
#读入图片文件
src=cv.imread(‘text.jpg‘)
#创建一个名字加 “ input image ” 的窗口,
# 窗口可以根据图片大小自动调整
cv.namedWindow(‘input image‘,cv.WINDOW_AUTOSIZE)
#在窗口显示图片
cv.imshow(‘input image‘,src)
#等待用户操作
cv.waitKey(0)
#释放所有窗口
cv.destroyAllWindows()
运行该程序时,提示如下错误:
ImportError: DLL load failed: 找不到指定的模块。
为寻找原因,打开pypi网站,搜索openCV-python包,打开其主页。在回答的问题中有关于该问题的描述:
Q: Import fails on Windows to some DLL load error?
A: If the import fails on Windows, make sure you have Visual C++ redistributable 2015 installed. If you are using older Windows version than Windows 10 and latest system updates are not installed, Universal C Runtime might be also required.
也就是说要安装Visual C++ redistributable 2015,但下载后无法安装,提示已安装相关的包,如下图所示。
于是在Anaconda 中开始查找库文件,结果只在Anaconda3\Lib\site-packages\cv2\build下找到了opencv_ffmpeg340_64.dll文件,没有其它dll文件或OpenCV提供给Python用的pyd文件。说明pip的安装有问题。
经百度,有人说Anaconda3\Lib\site-packages\ 目录下有一些opencv开头的dll文件,将其复制至cv2文件夹下即可,但我安装的是opencv3.4,安装后并没有这些文件。还有人说是pip安装时选择的OpenCV版本有问题。他解决了Python下安装OpenCV3.2的问题。于是我们也打开该网页,找到我们需要的版本(64位,已上传至本网站),即opencv_python?3.4.1+contrib?cp35?cp35m?win_amd64.whl或opencv_python?3.4.1?cp35?cp35m?win_amd64.whl并下载,比如下载至f:\tools,然后打开CMD切换至该目录,并运行pip命令安装:
pip install opencv_python?3.4.1+contrib?cp35?cp35m?win_amd64.whl
或pip install opencv_python?3.4.1?cp35?cp35m?win_amd64.whl
如果使用的不是Anaconda需要先安装wheel。安装完毕后再次运行cvtest.py不再提示ImportError。
附:dll文件中函数查看方法:
dumpbin /exports H:\opencv3.4\build\bin\opencv_ffmpeg340_64.dll
这里的动态库文件名可以输入全路径,也可以直接将dll文件拖放至该命令行窗口。输出结果如下:
上述三种工具在安装了Visual c++ 6.0或Vsiual Studio 2010后,可以在开始菜单中找到。若果没有安装,可以搜索下载相关的dll函数查看工具,安装后可以查看。
OpenCV开发(1)——OpenCV3.4+Python3.5+Windows10安装问题解决
标签:opencv3.4 Python3.5 opencv-python ImportError DLL load failed
原文地址:http://blog.51cto.com/8764888/2096317