寫在前面:之前一直使用vs2017+opencv的配置,現在體驗vs2019+opencv 4.3.0的配置。由於之前的配置相隔很久,忘記很多東西,如今重新配置還是踩了很多坑,記錄如下,希望對讀者有幫助。
使用說明
PC是Win10家庭版
Visual Studio Community 2019
Opencv用的版本是4.3.0
文章目錄
第一部分:Opencv部分
1.Opencv4.3.0下載
官方下載地址:https://opencv.org/releases/
目前最新版本是4.3.0
這裏選擇windows
下載完壓縮包名:opencv-4.3.0-vc14_vc15.exe
解壓完文件名:opencv
2.Opencv的環境變量
【1】找到我的電腦圖標(或者是此電腦),右擊。選擇屬性。
【2】選擇高級系統設置,找到環境變量。
【3】找到系統變量一欄,雙擊“path”
【4】點擊新建。輸入你的安裝路徑,需要到bin這個文件。
D:\opencv\build\x64\vc15\bin
下面爲環境變量的添加。
3.添加dll文件到System32中
這個路徑的來源如下圖,當你一層層點擊,直到bin這個文件打開,呈現的一般是類似於下圖的樣子。這個時候再複製路徑到上面的環境變量的添加中。
在路徑下找到3個應用程序擴展文件,分別爲
opencv_videoio_ffmpeg430_64.dll
opencv_world430.dll
opencv_world430d.dll
將opencv_world430.dll、opencv_videoio_ffmpeg430_64.dll和opencv_world430d.dll複製到下面的目錄
C:\Windows\System32
第二部分:VS中的操作
主要是配置包含目錄和庫目錄,以及附加依賴項的添加。
1.新建項目並進入屬性頁
【1】新建一個空項目。
簡單編輯項目名稱(或者默認不變)
【2】進入項目屬性頁。在右側解決方案一欄中點擊剛纔創建好的項目名,然後右擊,選擇屬性。可以得到如下圖的界面。
屬性頁如下圖所示
2.包含目錄,庫目錄,附加依賴項的配置
【動手前提醒】下面需要對包含目錄和庫目錄進行設置,儘量不要選擇這種所有配置、所有平臺,這樣在添加附加依賴項的時候會報錯。
正確的做法請往下看。
正確的做法
對於debug和release模式進行分別配置
1) release模式和平臺x64
包含目錄下添加
D:\opencv\build\include
D:\opencv\build\include\opencv2
庫目錄添加:
需要自己安裝的目錄
D:\opencv\build\x64\vc15\lib
添加附加依賴項
鏈接器->輸入->附加依賴項,點擊右側的下拉箭頭進行編輯,添加:
opencv_world430.lib
可以在如下路徑找到
D:\opencv\build\x64\vc15\lib
下圖是錯誤的配置,這樣配置會導致release可以正常運行而debug模式總是報錯LNK1112 模塊計算機類型“x64”與目標計算機類型“x86”衝突或者相反(有一種模式正常,一種模式報錯)
正確的配置:
這裏需要注意的是debug模式和release分別添加依賴項!!!!
debug模式dll文件中帶有字母d
release模式dll文件中不含字母d
對於release模式,只填入一個opencv_world430.lib
對於debug模式只填入一個opencv_world430d.lib
2)debug模式和x64平臺
需要選擇配置:debug,平臺:x64
其他步驟同上。
另外對於右上角配置管理器,需要選擇平臺X64,有時候報錯是這一步沒有設置。
3.代碼測試
解決方案管理器中,選擇源文件,右鍵添加,新建項
添加代碼如下
#include <iostream>
#include<opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>//Opencv highgui 模塊頭文件
#include<opencv2/imgproc/imgproc.hpp>//圖像處理頭文件
using namespace cv;
int main(){
//功能二:圖像模糊
Mat srcImage = imread("D:\\user\\下載\\計算機網絡.jpg");//需要自己設置路徑,注意使用\\
imshow("均值濾波原始圖",srcImage);
Mat dstImage;
blur(srcImage,dstImage,Size(7,7));
imshow("均值濾波效果圖",dstImage);
waitKey(0);
}
選擇下圖所示
debug和x64或者relese和x64,點擊本地windows調試器運行項目
測試結果
4.問題彙總
遇到問題【1】
嚴重性 代碼 說明 項目 文件 行 禁止顯示狀態
錯誤 LNK1112 模塊計算機類型“x64”與目標計算機類型“x86”衝突 forOpenCV D:\user\文檔\Visual Studio 2019\repos\forOpenCV\opencv_world430.lib(opencv_world430.dll) 1
這是因爲附加依賴項兩個dll文件同時添加到一個模式中,上文中提到過。解決辦法是需要含有字母d的dll文件配置到dubug模式,不含有字母d的dll文件配置到release模式。
遇到問題【2】
在x64和release下遇到問題opencv_world430.dll
這個問題是由於沒有把
opencv_videoio_ffmpeg430_64.dll
opencv_world430.dll
opencv_world430d.dll
三個dll文件複製到C:\Windows\System32目錄下。
解決辦法是將其複製到該目錄下。
參考博客:
VS2017 + OpenCV3 永久配置,同時 解決 debug模式下不報錯release模式報錯 或 debug模式下不報錯release模式報錯 的問題