一.根據自己電腦型號下載合適的opencv,我的是3.4.1
網址:https://opencv.org/releases.html#
二。解壓
雙擊下載好的安裝包,Extract to到自己想安裝的路徑(路徑最好不要有中文!!)
解壓路徑后點Extract即可完成解壓,解壓后會自動生成一個opencv的文件夾
三。配置系統變量
右擊此電腦——屬性——高級系統設置——環境變量——Path——新建
將你解壓的opencv文件夾中的***opencv\build\x64\vc14\bin路徑添加到當中
點擊確定,確定。
四。文件配置
1.找到OpenCV的opencv_world341d.dll
文件,在**\opencv\build\x64\vc14\bin
路徑下
然后把路徑下的3個.dll
文件復制到C:\Windows\System32
路徑下 。否則新建項目后會報錯:找不到 .dll(動態鏈接庫文件)
2.將**\opencv\build\x64\vc14\bin目錄下面的opencv_world341.dll和opencv_world341d.dll文件復制到C:\Windows\SysWOW64這個文件夾里
五。配置vs2017屬性:
1、新建一個空項目或控制台項目
2、進入屬性管理器,菜單欄->視圖->其他窗口->屬性管理器
3、對Debug|X64進行配置,右鍵Microsoft.Cpp.x64.user,點擊屬性
4、這里我們對屬性中的 VC++目錄->包含目錄->編輯:
加入安裝的完整路徑:**\opencv\build\include
**\opencv\build\include\opencv
**\opencv\build\include\opencv2
5.VC++目錄->庫目錄->編輯
加入:**\opencv\build\x64\vc14\lib
6.鏈接器->輸入->附加依賴項中加入 :opencv_world341d.lib
7.對項目的屬性進行配置:
視圖—>其他視圖->屬性管理器->
對Release|X64進行配置,右鍵Microsoft.Cpp.x64.user,點擊屬性
鏈接器->輸入->附加依賴項中加入:opencv_world341d.lib
注意:如果是opencv其他版本,只需要將將上述的依賴項文件稍作修改即可;eg:如果是opencv版本3.4.0,只需要將dll名字改為opencv_world340d.lib即可
8.配置結束,但是vs這一欄要用x64,符合上面的配置,不然會報錯,至於Debug下面會解釋
六。測試
#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; int main() { // 讀入一張圖片 Mat img = imread("C:\\1.jpg"); // 創建一個名為 "圖片"窗口 namedWindow("圖片"); // 在窗口中顯示圖片 imshow("圖片", img); // 等待1000 ms后窗口自動關閉 waitKey(1000); return 0; }
七。可能遇到的各種問題:
1.找不到.dll:
找到OpenCV的opencv_world341d.dll
文件,在**\opencv\build\x64\vc14\bin
路徑下
然后把路徑下的3個.dll
文件復制到C:\Windows\System32
路徑下
2.啟動程序后無法打開源文件 iostream:
此處問題還可能出在包含目錄上。在要把從父級或項目默認設置繼承
復選框勾上,因為包含目錄
修改了系統的include宏的值。在屬性中的包含目錄、源目錄等中勾選從父級或項目默認設置繼承,(我用的這個方法)或者全局范圍內尋找#include<xxxx.h>
中的xxxx.h
的搜索目錄。(這是百度到的,但是我沒用這個方法,)還有一個方法我也沒用,畢竟windows文件不想隨意動,詳看https://blog.csdn.net/hackerwin7/article/details/8456536。
3.無法打開opencv2/core/core.cpp
(1)先看包含目錄有沒有問題:
**\opencv\build\include
**\opencv\build\include\opencv
**\opencv\build\include\opencv2
這樣的路徑可能存在:#include opencv2/core/core.hpp 中opencv2已經在包含目錄中的問題。。。。
所以只要把路徑中重復的opencv2去掉就好啦。因為opencv中很多的相關文件都包含了opencv2,
所以,把‘包含目錄’中的第三項改成和第一項一樣的(不能刪第一項,還必須是三項)
(2)如果上面的方法還不行,就把包含目錄改回去,然后看上面圖中vs的debug,x64有沒有問題
可能是因為visual studio的生成模式Debug/Release搞的鬼,跟代碼無關。
其實VS提供的Debug和Release兩種調試模式完全使用不同的兩套類庫,所以在設置的時候一定要看清,看下圖:
這兩個要一致,不然哭死……
八。怎樣一次性配好OpenCv,后面建項目時不再一次次配環境?
(1)打開你建成功的第一個測試文件,點擊:視圖,其他窗口,屬性管理器,右擊Debug|64(根據你的配置來選,可以都生成一下,以防萬一,我只生成了對應的一個,是沒有問題的),添加屬性表,
編輯名字,保存,記住保存的位置,此時Debug|64下已經有了屬性表;
(如果是新建的項目,需要雙擊屬性表進行上面講解的配置……包含目錄啥的)
(2)新建一個項目,直接找到屬性管理器,右擊Debug|64,添加現有屬性表,找到剛剛存的屬性表(后綴是 .props),確定。
以后每次建項目就可以直接添加屬性表了。
運行。。。。結束