1. 程式人生 > >【opencv學習筆記一】opencv下載安裝與VS2017開發環境配置

【opencv學習筆記一】opencv下載安裝與VS2017開發環境配置

目錄

1.opencv下載與安裝

2.計算機環境變數配置

3.VS目錄包含

l  包含目錄

l  工程錄目錄

l  附加依賴項

l  在Windows資料夾下加入OpenCV動態連結庫

正文

一、opencv下載與安裝

1.下載地址:官網下載地址https://opencv.org/       opencv為開源軟體,可直接在官網下載最新版本。

2.軟體安裝:opencv其實並不需要安裝,從官網下載的檔案就是一個自解壓的檔案,所以從其它地方拷貝的解壓好的資料夾也是可以用的。以opencv3.4.0版本為例,下載完後得到檔案opencv-3.4.0.exe,雙擊執行該檔案,會出現解壓路徑選擇對話方塊


選擇你想要放置的路徑即可,點選Extract確定執行。出現下圖


等待安裝完成即可。

二、計算機環境變數配置

配置方法如下:

【計算機】->【(右鍵)屬性】->【高階系統設定】->【高階】->【環境變數】->“雙擊”系統變數中的PATH->在變數值裡面新增相應的路徑。

路徑:

對於opencv3.4.0只有64位;所以只要新增;……\opencv\build\x64\vc15\bin

舉個栗子:

我的安裝目錄為D:\Program Files\opencv340所以新增D:\Program Files\opencv340\opencv\build\x64\vc15\bin

其中VC15為VS版本號對應VS2017,其它版本對應關係如下


配置過程如下圖:

<1>

<2>


<3>

<4>

三、VS目錄包含

之前看過的好多博文都說“每次新建工程都要重新配置”,其實不用這樣麻煩的。

首先是在Visual Studio裡面新建一個控制檯應用程式,最好是勾好空專案那個勾。

<1>開啟visual studio,新建window控制檯專案,取個名字,比如叫test,然後選好路徑,點確定.


<2>在屬性管理器中進行一次配置,就相當於進行了通用的配置過程,以後新建的工程就不用再額外的進行重新配置了。

在選單欄裡面點<檢視>--<其它視窗><屬性管理器>,那麼就會在visual studio中多出一個屬性管理器工作區來。


<3>在新出現的“屬性管理器”工作區中,雙擊專案->Debug|x64->Microsoft.Cpp.x64.user即可開啟屬性頁面。


<4>開啟屬性頁面後,就是一番配置了。

1.包含目錄配置

在【通用屬性】 ->【VC++目錄】 ->【包含目錄】中


新增上

D:\ProgramFiles\opencv340\opencv\build\include

D:\ProgramFiles\opencv340\opencv\build\include\opencv

D:\ProgramFiles\opencv340\opencv\build\include\opencv2 這三個目錄。


當然,這是之前把OpenCV解壓到D:\Program Files\opencv340\下的情況。實際的路徑還要看你自己把OpenCV解壓到了哪個目錄下,根據你的實際情況來調節。

2.工程庫目錄配置

在【通用屬性】 ->【VC++目錄】 ->【庫目錄】中,


新增上D:\ProgramFiles\opencv340\opencv\build\x64\vc15\lib這個路徑。


3.附加依賴項

依然是在“屬性管理器”工作區中,雙擊專案->Debug|x64->Microsoft.Cpp.x64.user即可開啟屬性頁面。【通用屬性】 ->【連結器】->【輸入】->【附加的依賴項】



對已經發行和未來即將釋出的新版OpenCV,只需看opencv\build\x64\vc15\lib下的庫是哪幾個,新增成依賴項就可以了。

對於【OpenCV 3.4.0】想用debug版本的庫,新增

opencv_world340d.lib

而想用release版本的庫,新增

opencv_world340.lib

也可以把帶d和不帶d的兩個都新增這裡不建議將兩個庫都新增到debug依賴項下,因為以後會出現兩個同名視窗的現象。所以最好將帶d的新增到debug依賴項下,將不帶d的新增到release附加依賴項下

其中的340代表我們的OpenCV版本為3.4.0,若是其他版本的配置則在這裡要進行相應的更改。

Debug檔案庫名有d結尾,Release沒有,如 opencv_world340d.lib(debug版本的lib)和opencv_world340.lib(release版本的lib)


4.在Windows資料夾下加入OpenCV動態連結庫

如果執行文末的測試程式沒有報錯這步也可以不做。

這一步是各種介紹OpenCV的配置的相關博文中都沒寫出來的。根據這些博文配置出來的環境,在執行基於OpenCV的程式的時候,往往會得到這樣類似的結果:

 

這種問題最簡單粗暴的方法,是把相關的dll都拷貝到Windows作業系統的目錄下。如果你的Windows安裝在C盤,那麼路徑就是c:\Windows\System32。按照之前我的OpenCV的存放環境,這些dll存放在D:\ProgramFiles\opencv340\opencv\build\x64\vc15\bin目錄下。

到這個目錄下,複製對應dll,然後貼上到c:\Windows\System32下面,簡單粗暴地就完成了。

至此opencv便配置完成了

測試

#include "stdafx.h"
#include<opencv2\core.hpp>
#include<opencv2\highgui.hpp>

using namespace cv;

int main()
{
	Mat img = imread("111.jpg");
	namedWindow("hahaha");
	imshow("hahaha", img);

	waitKey(1000);

	return 0;
}

將圖片111.jpg放到專案目錄.......\tset1\test1下(與tset1.cpp同一目錄),執行程式,可以顯示111.jpg圖片即OK。

注意:執行時需選擇64位編譯器

附程式碼:

#include "stdafx.h"
#include<opencv2\core.hpp>
#include<opencv2\highgui.hpp>

using namespace cv;

int main()
{
    Mat img = imread("111.jpg");
    namedWindow("hahaha");
    imshow("hahaha", img);

    waitKey(1000);

    return 0;
}

相關推薦

opencv學習筆記opencv下載安裝VS2017開發環境配置

目錄1.opencv下載與安裝2.計算機環境變數配置3.VS目錄包含l  包含目錄l  工程錄目錄l  附加依賴項l  在Windows資料夾下加入OpenCV動態連結庫正文一、opencv下載與安裝1.下載地址:官網下載地址https://opencv.org/      

canvas學習筆記基本認識

基本認識 設置 supported eight -c 失真 ont 之前 上下 <canvas>標簽定義了一塊畫布,畫布可以在網頁中繪制2D和3D圖象,現在先學習如何繪制2D圖象,繪制3D圖象屬於WebGL的內容(也就是網頁版的OpenGL,3D圖形接口)。 屬

HTML5學習筆記環境搭建和需要掌握的技能

初學HTML5,特此寫一些學習筆記,記錄自己的成長。 一、開發環境     1.安裝JDK(現在暫時還沒用到,估計以後會用到)。     2.配置環境變數          2.1.新建JAVA_H

opencv學習筆記opencv3.4.0元件結構說明

在學習opencv使用之前我們先來看一下opencv有哪些元件結構。至於OpenCV元件結構的研究方法,我們不妨管中窺豹,通過opencv安裝路徑下include目錄裡面標頭檔案的分類存放,來一窺OpenCV這些年迅猛發展起來的龐雜元件架構。我們進入到D:\ProgramFi

OpenCV學習筆記 019SIFT和SURF演算法實現目標檢測

一、SIFT和SURF運算元實現特徵點檢測 概述 在OpenCV的features2d中實現了SIFT和SURF演算法,可以用於影象特徵點的自動檢測。具體實現是採用SiftFeatureDetector/SurfFeatureDetector類的detect函式檢測SIFT

OpenCV學習筆記 020K-Means聚類演算法介紹及實現

一、K-Means演算法介紹 在資料探勘中,K-Means演算法是一種cluster analysis的演算法,其主要是來計算資料聚集的演算法,主要通過不斷地取離種子點最近均值的演算法。 問題 K-Means演算法主要解決的問題如下圖所示。我們可以看到,在圖的左邊有一些點,

OpenCV學習筆記 010提取直線、輪廓及連通區域

一、Canny運算元檢測輪廓   (http://blog.csdn.net/davebobo/article/details/52583167) 1.概念及原理 (1)之前我們是對梯度大小進行閾值化以得到二值的邊緣影象。但是這樣做有兩個缺點。其一是檢測到的邊緣過粗,難以實

iOS開發opencv學習筆記下載安裝

1. opencv是什麼? opencv是一個基於BSD開源協議的影象處理開源庫,截止本人編輯時間:2017年6月1日,最新版本為3.2.0。 2.哪裡可以得到opencv的原始碼以及不同平臺的動態庫? opencv的官方地址為http://opencv.org/,可以在這

OpenCV學習筆記 023兩種影象分割方法比較

此次研究兩種影象分割法,分別是基於形態學的分水嶺演算法和基於圖割理論的GrabCut演算法。OpenCV均提供了兩張演算法或其變種。鑑於研究所需,記錄一些知識點,開發平臺為OpenCV2.4.9+Qt5.3.2。 一、使用分水嶺演算法進行影象分割 分水嶺變換是一種常用的影象處理演算法,在網上很容易搜到詳細

OpenCV學習筆記 004 影象的縮放、Canny邊緣檢測和影象的二值化

一、影象的縮放 本篇將介紹使用OpenCV來縮放圖片。首先介紹幾個關鍵函式——cvResize和cvCreateImage 1.主要函式介紹 1.1 cvResize 函式功能:影象大小變換 函式原型: voidcvResize(   const CvArr* src,

opencv學習筆記opencv3.4.0圖形使用者介面highgui函式解析

在筆記二中我們已經知道了,在highgui資料夾下的正是opencv圖形使用者介面功能結構,我們這篇部落格所說的便是D:\Program Files\opencv340\opencv\build\include\opencv2\highgui\highgui.hpp中的函數了

Nodejs學習筆記)--- 簡介及安裝Node.js開發環境

ack 目錄 javascrip 難度 時間 網站開發 clas jetbrains 常用 目錄 學習資料 簡介 安裝Node.js npm簡介 開發工具 Sublime Node.js開發環境配置 擴展:安裝多版本管理器 學習資料   1.深入淺出Node.j

MYSQL學習筆記02MySQL的高階應用之Explain(完美詳細版,看這篇就夠了)

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/wx1528159409 最近學習MySQL的高階應用Explain,寫一篇學習心得與總結,目錄腦圖如下: 一、Explain基本概念 1. Explain定義 · 我們知道M

opencv學習筆記:影象讀取儲存

影象讀取函式:cv2.imread(影象路徑,標誌符) 影象路勁可以是絕對路徑和相對路徑; 識別符號有三種: cv2.IMREAD_COLOR (忽視透明度); cv2.IMREAD_GRAYSCALE(轉換成灰度影象讀取); cv2.IMREAD_UNCHANGE

shell指令碼的作用,shell指令碼變數的定義和三種賦值方式shell指令碼的學習筆記

轉載自:http://blog.csdn.net/u010317005/article/details/50890543為什麼要用指令碼語言?以Linux系統為例,linux系統裡面有很多個命令,指令碼可以是一個或者多個命令的集合,通過執行指令碼,達到既定的功能或者效果。sh

OpenCV學習筆記(16)雙目測距三維重建的OpenCV實現問題集錦()影象獲取單目定標

雙目測距的基本原理 如上圖所示,雙目測距主要是利用了目標點在左右兩幅檢視上成像的橫向座標直接存在的差異(即視差)與目標點到成像平面的距離Z存在著反比例的關係:Z=fT/d。“@scyscyao :在OpenCV中,f的量綱是畫素點,T的量綱由定標板棋盤格的實際尺寸和使用者

QuartZ .Net 學習筆記: 源碼下載查看

net href cnblogs 方法 category solution ges 博客 存在 最近因為工作需要研究一下QuartZ .net , 之前也用過不過但沒有深入了解, 現想深入研究一下 網上相關QuartZ .net 的文章不少, 但大部分都是源於張善友的博

mysql學習筆記整理

結束 ant 出現次數 varchar 移動 desc cal direct 指定 /*mysql學習筆記整理*/ /*常用的數據庫操作對象*/ #庫的操作#創建#數據庫的創建USE mysql;CREATE DATABASE db_x;#刪除#刪除數據庫DROP

深度學習筆記1如何建立和確定模型正確性?如何優化模型?

近期看了吳恩達的一本書,關於如何建立和確定優化模型?裡面有個人認為需要學習的地方,故做筆記: 1.模型訓練一共有三個資料集:訓練集、開發集(驗證集)、測試集。開發集不能太小,通常在1000-10000,並且測試集屬於同一分佈;2.過擬合:訓練過程中開發集的準確率和測試集測試的準確率差別不大,若開發集比測試集

MYSQL學習筆記01MySQL的資料索引Index

最近學習MySQL的索引,以下是一點學習心得與總結: 我們都知道,在java的語法中,index指陣列中的下標;但在MySQL中,index的意思是索引。 1. 何為索引 MySQL官方對索引的定義為:索引(Index)是幫助MySQL高效獲取資料的資料結構。 解構這句話,分析和總結