首先簡單介紹一下opencv,OpenCV?(Open Source Computer Vision Library) 開放計算機(jī)視覺代碼庫凹联,實現(xiàn)了圖像處理和計算機(jī)視覺方面的很多通用算法. 它有C++, Python和Java的接口辛掠,支持Windows, Linux, Mac OS, iOS 以及Android系統(tǒng)。
本系列教程以C++為例,對一些基礎(chǔ)的函數(shù)和算法進(jìn)行講解嚷兔。所演示的圖片源自百度栏笆,部分代碼是按照CSDN上的代碼進(jìn)行了簡單的標(biāo)識符替換等修改类腮。如有侵權(quán),可以刪除蛉加。
第一部分就是環(huán)境的配置和安裝了蚜枢。作為C++的程序員,想必很多人都是用的Visual Studio進(jìn)行代碼的編寫的针饥。如果沒有的推薦安裝一個厂抽,學(xué)生版的是免費的。本文及以后示例的代碼開發(fā)環(huán)境均為windows10+Visual Studio2017+Opencv3.4.3丁眼。VS的下載方法就不在此介紹了筷凤,opencv的下載連接在這里opencv下載網(wǎng)頁“撸可以根據(jù)情況下載不同的版本藐守,因為本人目前只是學(xué)生,從簡單角度考慮蹂风,建議下載win包卢厂。當(dāng)然有能力的同學(xué)可以自己下載源代碼進(jìn)行編譯。opencv3.0之后的版本支持VC14和VC15惠啄,也就是VS2015和VS2017慎恒,因此建議沒有安裝VS的同學(xué)安裝新版本的VS。win下的exe下載完成之后撵渡,選擇位置來解壓融柬,解壓完成就可以使用了。
首先趋距,新建一個空項目粒氧,在VS的起始頁里直接點擊“新建項目”下的“空項目”就好。
配置好項目名稱和位置之后就可以了节腐。
下面是關(guān)鍵的地方靠欢,首先右擊項目名稱,如下圖铜跑。
點擊“屬性”门怪,或者建立好項目之后,直接按快捷鍵“Alt+Enter”,進(jìn)入屬性頁面锅纺。注意上方的平臺和配置掷空,平臺一定要選擇x64(因為opencv3.0之后的版本只支持64位機(jī)),而配置可以選擇“活動”或者“Release”,選擇活動平臺就是“活動x64”坦弟,選擇Debug或Release,平臺就選擇“x64”护锤。點擊“VC++目錄”點擊右側(cè)向下的箭頭,選擇“包含目錄”
會彈出如下的對話框酿傍,再點擊紅色圈里的文件夾圖標(biāo)烙懦。
在空白處會出現(xiàn)一行空格,點擊右邊的“...”,選擇頭文件的目錄赤炒。注意目錄為解壓的opencv的目錄下的build文件夾....完成這一步就可以使用opencv的頭文件了氯析。
下一步是要將鏈接文件包含到工程里。注意此時的包含目錄是已經(jīng)包含相應(yīng)目錄的莺褒。
引用庫目錄的方法與上面的相同掩缓,只是要引用的目錄有區(qū)別。在下圖的紅色圈中圈了出來遵岩。注意VC版本與VS的版本對應(yīng)關(guān)系你辣。VC15對應(yīng)VS2017,14對應(yīng)VS2015尘执。
最后一步舍哄,點擊屬性欄的“鏈接器”,選擇“輸入”選項誊锭,輸入“opencv_world343d.lib”表悬。opencv_world之后的數(shù)字是版本號,我用的是3.4.3所以是343炉旷,d表示“debug”签孔,如果選擇“Release”叉讥,則無需加“d”窘行。
此時,新建源文件图仓,在解決方案資源管理器的一欄中罐盔,右擊“源文件”,選擇“添加”救崔,“新建項”惶看,填入源文件名即可。由于本次會讀取圖像六孵,因此需要將圖像文件放入源文件的文件夾中(和.cpp文件在同一個文件夾)纬黎;或者在項目的資源文件中添加圖像文件。輸入以下代碼:
#include<iostream>
#include<core/core.hpp>
#include<highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat image = imread("E:\\c++\\openglLearning\\resource\\wood.png");//若圖像文件和.cpp文件在同一個文件夾下
//直接輸入文件名wood.png即可劫窒。
if (!image.data)
{
cout << "read image file fail !" << endl;
return 0;
}
cout << "size" << image.size().height << "," << image.size().width << endl;
namedWindow("Original Image");
imshow("Original Image", image);
waitKey(0);
return 0;
}
如果include哪里下面有曲線本今,一定要看下Debug右邊是x86還是x64,如果是x86要改成x64。結(jié)果如下