准備工作:
OPENCV 3.4.10 https://opencv.org/releases/
VS2017 https://visualstudio.microsoft.com/zh-hans/
安裝VS2017要選擇
CUDA https://developer.nvidia.com/cuda-downloads
自行查詢顯卡對應版本 本文使用cuda10.1
要能在Visual Studio中使用上述安裝的OpenCV,需要如下兩個步驟:
-
配置相關的環境變量
-
建立工程要配置相關的屬性
1. 配置相關的環境變量
在用戶變量和系統變量中的Path變量都添加進opencv安裝目錄的build中的bin文件夾路徑
D:\opencv\opencv\build\x64\vc15\bin
build文件夾只有"x64"文件夾(似乎是只支持64位系統,所以沒有“x86”文件夾),加上我是64位系統,所以選擇了“x64”。而至於為什么選擇“vc15”下的"bin"文件夾,那是根據所使用的VS版本決定的。
Visual Studio 版本 | OpenCV對應文件夾 |
---|---|
VS2008 | vc9 |
VS2010 | vc10 |
VS2012 | vc11 |
VS2013 | vc12 |
VS2014 | vc13 |
VS2015 | vc14 |
VS2017 | vc15 |
OpenCV3.4.2的"x64"只有"vc14"和"vc15",這意味着它只支持VS2015和VS2017。
2. 建立工程要配置相關的屬性
-
新建c++空文件
-
進入視圖->項目管理器
-
debug x64模式,然后博客上有三種情況
- 在project右鍵屬性
- 在debug上右鍵屬性
- 在debug->Microsoft.cpp.x64.user右鍵屬性
我選擇第二種,配置完第4步后,發現以上三種操作效果一樣。
-
包含目錄,添加以下路徑
在庫目錄下,添加以下路徑 -
添加依賴項,選擇“鏈接器”中的“輸入”, “附加依賴項”
在上述庫目錄(即\build\x64\vc15\lib)中,可以找到對應的.lib。
如果是在debug模式下,添加opencv_world341d.lib;
若是release模式,則選opencv_world341.lib。它們的文件名相差一個"d",帶"d"的表示debug。
不可兩個都添加,否則會出現一定的錯誤,也不可在debug下配置非debug的lib,在release下配置debug的lib,一定要對應使用。若要在release模式下使用,就要再對應地進行配置。
3. 打開圖片
報錯:無法打開文件“opencv_world340d.dll
重啟電腦,新建項目,發現上面添加的路徑和依賴都不見了。
重新添加路徑和依賴,成功運行程序。
重新打開運行,沒問題。
4. YOLOV4
1.打開darknet.sln
平台工具集選擇“無升級”
打開后,顯示錯誤 : 項目“D:\...\darknet-master\build\darknet\darknet.vcxproj”配置“Release|x64”的 Designtime 生成失敗
將項目改為release x64,同時點擊項目,然后重定向解決方案,一定要選擇無升級,這樣就可以把編譯平台停在vs2015。沒有報錯。
2、 修改配置
-
常規 – 平台工具集:vs2015(v140)
-
VC++目錄 – 包含目錄:
…\opencv\build\include
…\opencv\build\include\opencv
…\opencv\build\include\opencv2VC++目錄 – 庫目錄:
…\opencv\build\x64\vc14\lib -
添加目錄…\opencv\build\x64\vc14\lib下庫的名字
-
這里的目錄自己生成了錯誤的目錄,幸好發現才改了回來
3、 "CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions"下的文件直接拷貝到“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations”文件夾中。
4、 將…\opencv\build\x64\vc14\bin下的opencv_world330.dll 和opencv_ffmpeg330_64.dll 復制到 \darknet\darknet-master\build\darknet\x64 目錄下
5、 右鍵工程項目,點擊重新生成,生成成功
6、 下載yolo_v4 weights: 把它放到darknet\build\darknet\x64下
7、 在darknet\build\darknet\x64下按住shift鍵,點擊鼠標右鍵選擇“在此處打開Powershell 窗口(s)。
在命令行輸入 .\darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg