1. 程式人生 > >OpenCV開發(1)——OpenCV3.4+Python3.5+Windows10安裝問題解決

OpenCV開發(1)——OpenCV3.4+Python3.5+Windows10安裝問題解決

opencv3.4 Python3.5 opencv-python ImportError DLL load failed

OpenCV近幾年功能不斷增強,目標檢測、跟蹤等方面出現了不少新算法。自3.3版開始,火熱的深度神經網絡的功能也加入其中。早期的OpenCV僅支持簡單的視頻播放功能,現在ffmpeg的部分功能也融入進來。為了驗證新功能的效果,準備在Python下跑幾個程序看看效果。不過,配置的過程還是有點小麻煩的。
首先打開 Anaconda Prompt輸入
pip install opencv-python
然後,Anaconda會自動安裝python-3.4.0.12-cp35-cp35m-win_amd64.whl並提示成功安裝。
這時,打開Spyder新建文件cvtest.py並輸入

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文件中函數查看方法:

  1. 使用vc++ 6.0的dependency查看;
  2. 使用Visual Studio 2010的IL反匯編程序查看;
  3. 打開Visual Studio 2010命令行程序,輸入
    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安裝問題解決