總的來說,我們學習影象處理的就是從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...