opencv學習筆記

2021-07-25 19:39:34 字數 1478 閱讀 7147

總的來說,我們學習影象處理的就是從vs和opencv開始的。而在之前的學習中,我們使用了前人的通過或攝像頭的人臉識別**並順利執行了程式。順理成章地,接下來的階段就是將這些**給「吃透」,理解並吸收,掌握其中的知識。下面就是今天對於**中幾個重要組成部分的學習心得總結。

一、命名空間

using namespace std;

using namespace cv;

指明下面的程式使用std,如果不用這句指明的話就要用std::string(string是std空間中定義的

也可以在全域性空間中定義,只要名字空間不一樣即可)否則可以預設名字空間中有std.便不用std::來修飾

它是c++新標準中有的,解決多人作編大程式時名字衝突問題。如果用#include就不需寫這句話(舊標準)。但是如果用#include就必須要寫。

同理:using namespace cv是呼叫opencv中識別符號。

opencv中cout《輸出結果<

二、影象儲存資料結構mat類

常用的建構函式:

mat image1;

//建立無初始化矩陣

mat image2(6,6,cv_8uc1);

//建立6行6列型別為8位單通道矩陣

mat(int rows,int cols,int type);//建立行數為rows,列數為col,型別為type的影象

mat image3(size(7,7),cv_8uc3);//建立大小為7*7型別為8位3通道矩陣

mat image4(8,8,cv_32fc2,scalar(1,2,3));//建立乙個用1+3j填充的8*8復矩陣

mat image5(size(9,9),cv_8uc3,scalar(1,2,3));//建立大小為9*9型別為8位3通道矩陣

mat iamge6(image2);//將image2賦值給image6,共用資料物件,不會強制賦值

mat類建構函式中涉及型別type,type可以是cv_8uc1、cv_16sc1...、cv_64fc3等

8u表示8位無符號整數(0-255),16s表示16位有符號整數(-32768-32767),64f表示64位浮點double型別資料,c後面表示通道數(基本上,1個通道數相當於1個數值描述乙個畫素點,灰度圖;3個通道數相當於用rgb三個顏色描述乙個畫素點,彩色圖)

cv_[位數][帶符號與否][型別字首][通道數]

mat img = imread(「路徑」);//讀取檔案

mat img =imread(「路徑」,0);//載入灰度圖,當0變為大於0的數時顯示3通道彩色

imshow(「視窗名稱」,前面定義的名);//視窗顯示

imwrite(「名字.格式」,前面定義的名);//輸出影象到檔案

waitkey()延遲函式

通常計算機按照rgb方式儲存3通道影象格式,而影象採集裝置輸出影象格式一般是bgr方式

對於實際場景下的影象顯示來說,一般採用無符號8位整數cv_8u來顯示灰度影象,表示畫素灰度值從0到255。

openCV學習筆記

1 imread函式 mat imread const string filename,intflags 1 mat image0 imread dota.jpg cv load image anydepth cv load image anycolor 載入最真實的影象 ge1 imread do...

OpenCV學習筆記

初次學習計算機視覺,接觸到了opencv這個開源的計算機視覺庫,現在開始逐漸整理學習過程中自己遇到的最基本東西,因為自己比較笨,所以便把自己在學習中遇到的各種奇葩簡單問題都一一記錄下來,希望對初學的你有所幫助。大佬就忽略我的存在吧。1.什麼是命名空間?using namespace cv 在寫 的時...

Opencv學習筆記

1 矩陣翻轉,cv flip inputarray src,outputarray dst,int flipcode 引數 src,輸入矩陣 dst,翻轉後矩陣,型別與src一致 flipcode,翻轉模式,flipcode 0垂直翻轉 沿x軸翻轉 flipcode 0水平翻轉 沿y軸翻轉 flip...