close

 

 

 

image

突然發現我已經好一段時間沒有發過文章了,著實是這幾個月發生太多事情,也太忙,連原本前陣子在玩的LINE都沒時間寫上去,現在又接者新東西來,所以積欠的就讓我慢慢補上囉。

最近公司開始要玩起影像相關的,而影像相關的就不得不提當前最紅的OpenCV,相信我,你去書店找過一輪你就會發現,大部分跟影像相關的都會扯到這個OpenSource,不過就如同每個新玩具一樣,都會遇到一個共同的痛點,那就是環境設置。

所以,第一篇我想先介紹一下環境配置,接下來在開始慢慢深入這個軟體,其中包含會拿這玩意做一些影像處理、AI相關,更或者會開始玩一些壓縮之類的。

如果你喜歡的話,就請繼續持續關注囉,那麼,我們開始吧。

 

[Step1. 軟體下載]

OpenCV401 : https://sourceforge.net/projects/opencvlibrary/files/4.0.1/opencv-4.0.1-vc14_vc15.exe/download

工欲善其事,必先利其器,所以我們就先到官方網站上下載OpenCV,而你在官網上應該會看到很多不同版本,但我還是建議你先拿舊的來使用,因為畢竟新東西總是需要一堆白老鼠去嘗試才能趨近於穩定,而舊的就沒這個困擾。
 

下載好後,還是建議各位觀眾跟者我操作,畢竟設環境這玩意,如果不是安裝包的話,很容易東漏漏西漏漏,最後再跑來問說該怎麼辦。

那個時候其實我也不知道該怎麼救你各位,我也只能盲猜瞎猜,所以為了避免這尷尬的狀況,所以最保險的情況還是照做吧。(之後所有的路徑你們都可以直接複製貼上)

 

直接安裝在C

image

安裝 Opencv-4.0.1-cv14_cv15,會產生opencv這個資料夾,所以請不要自作主張新增這個資料夾,因為這會讓你之後的目錄多一層opencv\opencv\....。

 

[Step2. 文件說明]

image

我們路徑會是一樣的,所以你可以直接去找,OpenCV只有x64而已,而裡面的vc14 & vc15就是我們要的,如果你是2015,那接下來只要有vcxx的地方,就使用vc14,如果你是2017 & 2019,則使用vc15。

2017我實測過是沒有問題,2019原則上應該也不會有,大家可以試試看,不然就是等我老大安裝,然後等他回報XD。

image

 

[Step3. 建置環境]

這裡我建議要很認真看,真的要很認真,最好一個步驟都不要漏掉,因為通常設置不成功,有9成都是因為這邊出錯,而這是一次性的工作,設置好之後這台電腦就不用再設置了。

 

對左下角的開始按右鍵→打開管理員模式的powershell。

image

 

 

輸入下面的指令

1.

[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";C:\opencv\build\x64\vc15\bin", "Machine")

2.    
[environment]::GetEnvironmentVariable("PATH", "Machine")

image

 

第一條是設置環境變數,第二條是確認是否有成功,接下來你會在圖片上看到3那邊有設置好的環境變數。
    
    注意:
    1.如果這個地方沒有做好,之後在include .lib的會錯誤。
    2.如果你有打開VS,請關閉,如果已經先打開,這裡做完請全部關閉在啟動。
    3.終端機要用管理權限打開,不然指令會沒有作用。

 

 

 

 

接下來你要打開你的Visual Studio 2017(2019),然後創一個新專案,然後選擇console的就好,我們盡量把事情簡單化,之後再慢慢加。
專案名稱可以隨便打(cvTest),然後打開檢視→屬性管理員(View->Property Manager)

image

 

 

 

看到了後,我們對者Debug|X64按下右鍵,Add New Project Projecty Sheet->名稱打:    opencv401d.props   (這裡不要亂改)

image

image

 

 

好了之後點他兩下會彈出一個視窗

image

加入 include 路徑 和 lib 路徑
include目錄的最前面加上 C:\opencv\build\include;
函式庫目錄最前面加上 C:\opencv\build\x64\vc15\lib;
(他原本是有東西的,原本的東西要留著中間用分號隔開)

 

 

加入 lib 檔案
這邊點那個小三角,在按編輯

image

 

然後輸入 opencv_world401d.lib

image

這邊補充說明一下 opencv_world401d.lib 中的 401 是 opencv 的版本 4.0.1版本,如果下載的是別的版本,記得要自己修正。

 

[Step4. 程式測試]

接下來我們寫點程式吧 !



#include 
#include 

using namespace cv;

int main()
{
	/* 畫布 */
	Mat img(270, 720, CV_8UC3, Scalar(56, 50, 38));
	/* 直線 */
	line(img, Point(20, 40), Point(120, 140), Scalar(255, 0, 0), 3);
	/* 實心方塊 */
	rectangle(img, Point(150, 40), Point(250, 140), Scalar(0, 0, 255), -1);
	/* 實心圓 */
	circle(img, Point(330, 90), 50, Scalar(0, 255, 0), -1);
	/* 空心橢圓 */
	ellipse(img, Point(460, 90), Size(60, 40), 45, 0, 360, Scalar(255, 255, 0), 2);
	/* 不規則圖形 */
	Point points[1][5];
	int x = 40, y = 540;
	points[0][0] = Point(0 + y, 50 + x);
	points[0][1] = Point(40 + y, 0 + x);
	points[0][2] = Point(110 + y, 35 + x);
	points[0][3] = Point(74 + y, 76 + x);
	points[0][4] = Point(28 + y, 96 + x);
	const Point * ppt[1] = { points[0] };
	int npt[] = { 5 };
	polylines(img, ppt, npt, 1, 1, Scalar(0, 255, 255), 3);
	/* 繪出文字 */
	putText(img, "Test Passed !!", Point(10, 230), 0, 3, Scalar(255, 170, 130), 3);
	/* 開啟畫布 */
	namedWindow("OpenCV Test By:Charlotte.HonG", WINDOW_AUTOSIZE);
	imshow("OpenCV Test By:Charlotte.HonG", img);
	waitKey(0);
	return 0;
}



 

 

接下來我們寫點程式吧 !

確認自己是不是在Debug + x64的環境!

image

image

這樣恭喜你已經完成了設置了,之後你這台電腦基本上就不需要再重新用了,記得,Release的地方也要重覆剛剛的步驟。

而在 release 最後面加入lib的時候要使用沒有 d 結尾的 `opencv_world401.lib,才是正確的檔案,這邊設置錯誤會無法編譯。

設置完畢代碼不需要更動,編譯的時候VS上方從 debug/x64 模式更改為 release/x64 模式即可

 

 

 

[Step5. 重覆使用]

現在已經設置完畢了,並且你會發現,在你的專案目錄會有一個 opencv401d.props
剛剛要你不要更改就是因為連同版本號一起打上來,這樣比較好識別。
這個把他複製出來存好,他是可以重複使用的
下次開別的新專案直接新增進來就好,完全不用再設置opencv。

image

 

使用方式的話,就是把這個檔案加入到專案裡面,但是有一點要注意,那就是如果要使用的話,還是建議複製一份過去,畢竟專案跟專案不要有太多相依性是基本原則。

image

arrow
arrow
    創作者介紹
    創作者 Eric 的頭像
    Eric

    一個小小工程師的心情抒發天地

    Eric 發表在 痞客邦 留言(0) 人氣()