前言:本學期選了一門軟件課設---基於OpenCV的圖形處理程序(已經完成了課設任務,出幾篇博客記錄一下學習歷程)。首先第一步就是VS配置OpenCV(VS2017是一直以來用的編程軟件),在實驗課上老師也教了但是也試了好幾遍都沒有配置成功。課下自己在找各種配置方法看了大概有10篇左右的博客,在踩了很多坑情況下花了一下午終於配置成功了。
說明:不是博主這個版本的opencv本教程也是實用的,只需要改一點點東西就行,後面會進行提示!
第一步:下載opencv安裝包
1、官網下載
在此,說明一下,沒有必要去根據博主 的博客下載與博客相應的版本,其實只需要改一點點東西即可,後面進行說明,官網下載,下面是官網的網址,大家可以根據自己情況選擇合適的版本(我的是3.4.1版本)
網址:https://opencv.org/releases.html#
二、解壓下載文件
雙擊下載好的或者拷好的安裝包,選擇解壓路徑後點Extract即可完成解壓,解壓後會自動生成一個opencv的文件夾(圖2)
圖3中的文件夾如果配置環境次數多應該很熟悉的
第三步:配置系統變量(WIN10)
1、找到此電腦(圖4)
2、右鍵->屬性->高級系統設置->環境變量
找到系統變量中的path變量,雙擊它,點擊新建,將你解壓的opencv文件夾中的***opencv\build\x64\vc14\bin路徑添加到當中。這裏我是選擇了vc14這個子文件夾,也可以選擇15,但後面要做出相應調整,所以不妨就vc14咯!
注意:路徑粘貼後記得點確定,並在外面點能點的確定全點選一遍!
詳細看下圖:
以上完成了系統變量的配置,直接拷貝路徑即可
第四步:相關文件的配置
注意:網上很多教程沒有這一步,會報那種找不到dll文件的錯誤,是因爲沒有將opencv裏面的相關文件複製到C盤中的文件夾裏面
操作方法:將bin目錄下面的opencv_world341.dll和opencv_world341d.dll文件複製到C:\Windows\SysWOW64這個文件夾裏面即可
將bin目錄裏面的opencv_ffmpeg341_64.dll複製到C:\Windows\System32這個文件夾裏面(詳細看圖)
如果是opencv其他的版本,把對應的dll文件移動到上述兩個C盤文件夾即可!
第五步:進入VS2017配置屬性管理器進行相關配置
1、新建一個項目,我這裏建了一個空項目
2、進入屬性管理器,菜單欄->視圖->其他窗口->屬性管理器
3、對Debug|X64進行配置,右鍵Microsoft.Cpp.x64.user,點擊屬性
4、這裏我們對屬性中的 VC++目錄->包含目錄和VC++目錄->庫目錄進行添加相關路徑,對 鏈接器->輸入->附加依賴項進行添加相關路徑
5、包含目錄中加入
F:\OPENCV\opencv\build\include
F:\OPENCV\opencv\build\include\opencv
F:\OPENCV\opencv\build\include\opencv2
庫目錄中加入
F:\OPENCV\opencv\build\x64\vc14\lib
6、鏈接器->輸入->附加依賴項中加入
opencv_world341d.lib
注意:博主後面瞭解到release|X64的配置爲可選項,後面也有熱心讀者提醒,所以下面的這一步可以不做,因爲編譯時只用到了debug,release是發佈程序時纔會用到。
//7、對Release|X64進行配置,右鍵Microsoft.Cpp.x64.user,點擊屬性
//鏈接器->輸入->附加依賴項中加入
//opencv_world341.lib
注意:如果是opencv其他版本,只需要將將上述的依賴項文件稍作修改即可;eg:如果是opencv版本3.4.0,只需要將dll名字改爲opencv_world340d.lib即可,依次類推!
第六步:勾選微軟符號服務器(此步爲可選項)
其實到上一步已經配好了,但是到了關鍵時候VS2017總是說我少各種dll文件,百度上面說不用理這種錯誤,可以選擇勾選微軟符號服務器來下載缺失的dll文件
操作步驟:左鍵調試->選項->常規 勾選啓動源服務器支持
符號那一項勾上微軟符號服務器
注意:可以用一個文件夾來緩存下載的dll文件,只是第一次加載,不用擔心。或者,你也可以等加載完了之後,再把之前勾選的取消掉,也沒有問題。 我建了一個文件夾(文件夾是我自己建的),後面發現它下載了很多pdb文件!
注意:到上面所有工作,opencv已經配完了,注意解決方案平臺那一欄要換成X64(因爲我們一直都在配X64
第七步:測試環節!
注意:由於很多人遇到圖片無法輸出的情況,在此特地添加一條需要注意的事項,讀入圖片路徑時有兩種方法。
(1)絕對路徑
eg:Mat img = imread("F:\\suoxiaotu\\poyanghu縮小圖.tif");
注意這個地方的雙斜槓很重要,直接弄過來的圖片途徑是隻有一個斜槓的,兩個斜槓的原因應該是第一個斜槓是轉義字符。
(2)圖片路徑
eg:Mat img = imread("poyanghu縮小圖.tif");
這個地方有兩點需要注意:第一個就是大家的圖片格式一定要分清楚,建議自己右鍵查看目標圖片的屬性,另一個就是要注意這樣做的前提條件就是你的圖片就在你所建工程的目錄下。不然會顯示找不到圖片。
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
// 讀入一張圖片(poyanghu縮小圖)
Mat img = imread("F:\\suoxiaotu\\poyanghu縮小圖.tif");
// 創建一個名爲 "圖片"窗口
namedWindow("圖片");
// 在窗口中顯示圖片
imshow("圖片", img);
// 等待6000 ms後窗口自動關閉
waitKey(6000);
return 0;
}
此上即配置成功!!
本博客轉自:https://blog.csdn.net/qq_41175905/article/details/80560429
非常感謝各位博主大佬