學習OpenCV 1 開發環境的搭建

2021-07-10 06:51:20 字數 3955 閱讀 1287

注意:

本文使用環境和工具:

windows10 64位專業版

visualstudio2013

opencv2.4.11

筆者經過測試,使用以下環境均可:

作業系統:win7,win8,win8.1

編譯器:visualstudio2010,2013,2015

opencv2.4.x

如果使用opencv3.0.0或者更新版本,由於動態鏈結庫的變化,會導致有些步驟與下文不同!

直接執行安裝檔案,將opencv釋放到某個目錄下即可,雖然筆者經過測試,使用漢語名完全沒有問題,但是仍然推薦該目錄使用英文名.

下面使用』(opencv安裝目錄)』來代替opencv的父目錄.

(opencv安裝目錄)\opencv

\build

\x86\vcx

\bin

(opencv安裝目錄)\opencv

\build

\x64\vcx

\bin

這兩個是opencv所需的環境變數,需要寫入到path中,系統變數和使用者變數均可,筆者推薦使用使用者變數.此處需要注意的是,vcx 處,vs版本和對應資料夾的關係

vs2010--

vc10

vs2012--

vc11

vs2013--

vc12

每乙個使用opencv的新專案在建立的時候都需要進行下面的設定,opencv的專案設定有三項:包含目錄,庫目錄,附加依賴項.

如何找到這三個專案:

在解決方案管理器下,右鍵解決方案->屬性->vc++目錄:

可以看到包含目錄和庫目錄:

在鏈結器->輸入 中,可以看見附加依賴項:

如何設定這三個專案:

1.包含目錄

包含目錄就是編譯器根據」#include」指令尋找標頭檔案的地方,此處需要設定為:

(opencv安裝目錄)\opencv

\build

\include

(opencv安裝目錄)\opencv

\build

\include

\opencv

(opencv安裝目錄)\opencv

\build

\include

\opencv2

2.庫目錄

庫目錄就是編譯器根據**中的鏈結庫指令和附加依賴項尋找外部鏈結庫的位置,需要格外注意的是,在opencv2.4.x版本中,debug和release版本使用的庫目錄是不一樣的,這兩個不能混用或者調換否則無法通過編譯.

//以visualstudio2013,x86版本為例:

//debug:

(opencv安裝目錄)\opencv

\build

\x86\vc12\lib

//release:

(opencv安裝目錄)\opencv

\build

\x86\vc12\staticlib

3.附加依賴項

附加依賴項就是程式需要使用的外部庫的名稱,由於庫目錄已經指定了載入目錄,所以這裡只需要填寫檔名就可以了,在這裡填寫檔名和下面的方法是等效的:

#pragma comment( lib, "opencv_calib3d2411d.lib" )
opencv2.4.11中所有的動態庫:(debug模式使用)

opencv_calib3d2411d.lib

opencv_contrib2411d.lib

opencv_core2411d.lib

opencv_features2d2411d.lib

opencv_flann2411d.lib

opencv_gpu2411d.lib

opencv_highgui2411d.lib

opencv_imgproc2411d.lib

opencv_legacy2411d.lib

opencv_ml2411d.lib

opencv_nonfree2411d.lib

opencv_objdetect2411d.lib

opencv_ocl2411d.lib

opencv_photo2411d.lib

opencv_stitching2411d.lib

opencv_superres2411d.lib

opencv_ts2411d.lib

opencv_video2411d.lib

opencv_videostab2411d.lib

opencv2.4.11中所有的靜態庫:(release版本使用)

ilmimf.lib

libjasper.lib

libjpeg.lib

libpng.lib

libtiff.lib

opencv_calib3d2411.lib

opencv_contrib2411.lib

opencv_core2411.lib

opencv_features2d2411.lib

opencv_flann2411.lib

opencv_gpu2411.lib

opencv_highgui2411.lib

opencv_imgproc2411.lib

opencv_legacy2411.lib

opencv_ml2411.lib

opencv_nonfree2411.lib

opencv_objdetect2411.lib

opencv_ocl2411.lib

opencv_photo2411.lib

opencv_stitching2411.lib

opencv_superres2411.lib

opencv_ts2411.lib

opencv_video2411.lib

opencv_videostab2411.lib

zlib.lib

除了上面所說的設定方法,還可以使用vs的」屬性管理器」,對debug和release模式分別建立配置檔案

1.新建專案:

2.開啟屬性管理器:

3.為debug新增新專案屬性表:

4.開啟屬性表,編輯debug模式的屬性,編輯方法和上文一樣.

5.同樣還可以為release新增屬性,方式都一樣,

6.在執行編譯的時候,可以通過這個按鈕切換編譯要使用的屬性是哪一種:

7.可以把屬性表儲存下來,以後建立的專案直接匯入屬性表,就不需要每次都配置這些東西了.

OPENCV 1 學習筆記

灰度圖 2維矩陣 彩色圖 3維矩陣 ps 目前大部分裝置都是用無符號 8 位整數 型別為 cv 8u 表示畫素亮度 mat類定義 class cv exports mat 單通道影象 元素型別一般為 8u 即 8 位無符號整數 也可以是 16s 32f 等 這些型別可以直接用 uchar short...

Opencv2與opencv1的區別

一 opencv2與opencv1的區別 opencv1.0 版本於2006年面世,主要基於c語言。2009年發布opencv2,主要基於c 此時opencv庫被劃分成多個模組,這些模組被編譯成庫檔案後,位於lib資料夾中。主要有以下模組 版本1的結構見我的這篇blog opencv core 模組...

學習openCV 1 關於通道和灰度的解釋

關於通道的解釋 1 比較通俗易懂的解釋是 灰度圖的通道數為1,彩色圖的通道為3。基本上,描述乙個畫素點,如果是灰度,那麼只需要乙個數值來描述它,就是單通道。如果乙個畫素點,有rgb三種顏色來描述它,就是三通道。2 4通道通常為rgba,在某些處理中可能會用到。2通道影象不常見,通常在程式處理中會用到...