軟體下載

先到官方下載這兩項軟體 (點擊有連結)
  1. OpenCV
本文範例opencv載這個
並直接安裝到C曹,這邊建議跟著我做(這邊改了文中教程全都要改)
  1. Visual Studio 2019
關於 Visual Studio 如何安裝可以參考
https://charlottehong.blogspot.com/2018/09/c-visual-studio-2017.html

文件說明

build 是待會要用到的文件,全部都在裡面
這個位置是要設置在環境變數的(專給VS用的)
C:\opencv\build\x64\vc15\bin
這個位置給 C++ 引入標頭檔的
C:\opencv\build\include
這個位置專給 VS 引入lib檔的
C:\opencv\build\x64\vc15\lib
以上如果是 VS2015 就是找vc14
VS2019未來有可能會變成vc16 (記得當初VS本來是vc14後來升級變vc15)

部屬OpenCV

環境變數

這是一次性的工作,設置好環境變數,這台電腦以後就不用再設置了。
對著左下角的開始按右鍵,打開管理員模式的 powershell
如果是使用 win7 下面提供兩個方法(擇一即可):
  • 先用管理員打開cmd,然後在cmd輸入 powershell 就好了
  • 或是直接在開始搜尋 powershell ,然後再右鍵使用管理員開啟
Win7的使用者如果真的都不行,這邊可以參考至頂處的舊文章手動設置環境變數,比較麻煩一些,不過結果是一樣的。設置完畢再回來本文繼續做即可~
輸入下面指令 (連點三下直接全選)
[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";C:\opencv\build\x64\vc15\bin", "Machine")
輸入之後不會有什麼提示,想要確定是否成功可以輸入
[environment]::GetEnvironmentVariable("PATH", "Machine")
查詢目前環境變數是否有輸入
記得VS在此之前不要打開歐,如果已經先打開了,這邊做完後關閉重新啟動VS就好了。
因為打開的時候載入的環境變數還沒有這行opencv,並不會因為事後新增而載入。

VS2019設定

注意以下使用的版本號是4.0.1,如果你下載的版本號不是這個版本,下面有關於401的數字都要更改,比如說現在是4.1.0那就是
opencv_world401d.lib -> opencv_world410d.lib
讓我們先建立新專案吧
直接選擇空白專案
這邊隨意打一個名稱就可以下一步了
創建好專案再來就設置opencv吧~先新增屬性表
這張圖多看幾眼,右鍵的位置點錯就錯了…
然後新增名稱 opencv401d.props 這邊不要自己改,照著打稍後會說明
好了之後會出現在這個位置,點他兩下

加入 include 路徑

這邊輸入 C:\opencv\build\include

加入 lib 路徑

這邊輸入 C:\opencv\build\x64\vc15\lib

加入 lib 檔案

這邊點那個小三角,在按編輯
然後輸入 opencv_world401d.lib

測試代碼

現在讓我們新增一份新的程式碼
直接就預設名稱下一步吧
接下來輸入測試程序
/**********************************************************
Name :
Date : 2016/05/29
By   : CharlotteHonG
Final: 2016/05/29
**********************************************************/
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char const* argv[]) {
 /* 畫布 */
 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 模式,因為剛剛只有設置這個模式。
然後就按F5測試吧
恭喜完成 opencv 的設置~到這邊就已經設置完畢。

練習

趁著現在記憶猶新,趕快來練習,現在就試著設置 relese 模式吧~
目前是設置 debug/x64 模式,如果要設置 release 模式,最初一開始的時候屬性表要加在 release | x64 裡面。
而在 release 最後面加入lib的時候要使用沒有 d 結尾的 `opencv_world401.lib,才是正確的檔案,這邊設置錯誤會無法編譯。
設置完畢代碼不需要更動,編譯的時候VS上方從 debug/x64 模式更改為 release/x64 模式即可~
至於 x86 模式因為 官方給的檔案並沒有幫你預先編譯好,就沒辦法做了,想要使用x86模式需要自己重新編一,詳細可以參考這邊站內文章重新編譯。
https://charlottehong.blogspot.com/2017/07/opencv-320-contrib-visual-studio.html

重複使用

現在已經設置完畢了,並且你會發現,在你的專案目錄會有一個 opencv401d.props
這個把他複製出來存好,他是可以重複使用的,下次開別的新專案直接新增進來就好,完全不用再設置opencv。
使用方式像這樣,加入這個屬性表

发表评论

邮箱地址不会被公开。 必填项已用*标注