(一)、opencv常用資料結構
1)、point類
point類資料結構表示二維座標系的點,由座標x, y指定的2d點,如:
point pt;
pt.x = 20;
pt.y = 10;
其他型別:
point
point2d
point2f
point2i
point3d
point3f
point3i
2)、rect類
rect類用來表示矩形,成員有x,y, width, height,常用的成員函式:
size()返回值size表示大小 tl()返回左上角座標
area()返回矩形面積 br()返回右下角座標
contains(point)判斷點是否在矩形內
inside(rect)判斷矩形是否在該矩形內
求兩個矩形的交集並集:
rect rect = rect1 & rect2;
rect rect = rect1 | rect2;
3)、size類
size表示區域大小,常用建構函式size(int _width, int _height)
4)、scalar類
scalar()表示具有四個元素的陣列,大量用來傳遞畫素值,如rgb顏色,一般形式:
scalar(double b, double g, double r, double alpha)
如果用不到第四個則表示scalar(b, g, r), 其中:
b—表示藍色分量,g—表示綠色分量
r—表示紅色分量,alpha—表示透明度
注意:scalar表示顏色順序為bgr
scalar(255, 0, 0) ----表示純藍色
scalar(0, 255, 0) ----表示純綠色
scalar(0, 0, 255) ----表示純紅色
scalar(255, 255, 0) ----表示青色
scalar(0, 255, 255) ----表示黃色
(二)、mat類
1)、基礎影象容器mat
我們可以借助很多方法來獲取影象,但是儲存到數字裝置中記錄的確實每個畫素點的數值。
opencv2.x以上版本提供mat結構來儲存影象,優化了記憶體管理,不用手動開闢空間,也不必在不使用的時候立即釋放,減少記憶體洩漏的風險。
2)、mat類簡介:
mat是乙個類,由兩個資料部分組成:矩陣頭(大小,通道,資料型別等)和資料塊(畫素值)。
mat頭部屬性如:rows,cols,channels,data
data是乙個指向資料塊的指標,可以用如下方法判斷影象是否為空:
if(!img.data) //影象資料為空
return;
3)mat類操作
a、mat類建立
mat img; //建立無初始化矩陣
mat img1(20,10,cv_8uc1); //建立20行10列型別為8位的單通道矩陣
mat img2(size(20,10),cv_8uc3); //建立20*10型別為8位的3通道矩陣
mat img3(20,10,cv_8uc3,scalar(0,255,0)); //建立10*20型別為8位的3通道矩陣
mat img4(20,10,cv_8uc1,scalar(255)); //建立10*20型別為8位的單通道矩陣
mat img5(img4);
b、mat類賦值拷貝
mat img(100, 200, cv_8uc3, scalar(0,255,0));
和原影象指向同一塊資料:
mat img2(img);
mat img3 = img;
原影象的副本:
mat img4 = img.clone();
mat img 5;
img.copyto(img5);
c、常用顏色空間
rbg顏色空間、hsv/hls顏色空間、lab顏色空間
轉換所用函式cvtcolor(src, dst, code)
cv_bgr2gray、cv_bgr2hsv、cv_bgr2lab
(三)、顏色
rbg顏色空間,r/g/b取值範圍[0,255]
hsv/hls顏色空間,h取值範圍[0,360],s/v取值範圍[0,1]
lab顏色空間,l取值範圍[0,100],a/b取值範圍[127,-128]
android基礎 第一天
一 android體系結構 密碼 d7g8 二 兩種虛擬機器的比較 密碼 8gyf 三 sdk介紹 密碼 xqam 四 eclipse環境搭建 密碼 yt4z 五 模擬器的介紹 密碼 j7wg 六 第乙個android專案 上 密碼 jnz1 七 第乙個android專案 下 密碼 i6td 八 a...
Vue基礎第一天
foreach function value,index 4 1.filter 過濾器 filter function item,index let arr 1,2,3,4,5,arr.filter function item,index 4 2.map 對映 對於陣列的對映map function...
js基礎第一天
js的介紹 js是什麼 js是一門指令碼語言 解釋性語言 動態型別語言 基於物件語言 編譯語言 需要把 翻譯成計算機所認知的二進位制語言,才能夠執行 指令碼語言 不需要編譯,直接執行 常見的指令碼語言 t sql,cmd js的作用 解決使用者和瀏覽器之間的互動問題 的寫法 宣告乙個物件 var o...