vec
scalar
point
size
rect
rotatedrect
vec類
1.1 基本概念
vec是乙個模板類,主要用於儲存數值向量。
1.2 用法
(1)可用它來定義任意型別的向量
vecmyvector; // 定義乙個存放8個double型變數的向量
(2)使用[ ]訪問vec向量成員
myvector[0]=0;
(3)可使用以下預定義的型別
typedef vecvec2b;
typedef vecvec3b;
typedef vecvec4b;
typedef vecvec2s;
typedef vecvec3s;
typedef vecvec4s;
typedef vecvec2i;
typedef vecvec3i;
typedef vecvec4i;
typedef vecvec2f;
typedef vecvec3f;
typedef vecvec4f;
typedef vecvec6f;
typedef vecvec2d;
typedef vecvec3d;
typedef vecvec4d;
typedef vecvec6d;
//可以直接運用
vec3b mychar;
mychar[2]=『cat』;
vec6d mydata;
for(int i=0; i(4)vec支援的運算如下:
複製**
v1 = v2 + v3
v1 = v2 - v3
v1 = v2 * scale
v1 = scale * v2
v1 = -v2
v1 += v2
v1 == v2, v1 != v2
norm(v1) (euclidean norm)//歐幾里得範數
//求mydata的歐幾里得範數
norm(mydata);
1.3 示例**
(1)向量定義與元素的訪問
// vec
cv::vecmyvector;
for(int i=0; i(2)基本運算
cv::vecv1,v2,v3;
for(int i=0; i返回向量v2的行數
v2[i] = i;
v3[i] = i+1;
}
v1 = v2 + v3;
cout<<"v2 = "2.1 基本概念
scalar是乙個從vec類引出的模板類,是乙個可存放4個元素的向量,廣泛用於傳遞和讀取影象中的畫素值。
2.2 用法
可使用訪問scalar值。或使用如下方式定義bgr三個通道的值。
cv:: scalar( b, g, r )
2.3 示例**
(1)cv::scalar結構
cv::scalar myscalar;
myscalar = cv::scalar(0,255,0);
cout<<"myscalar = "因此,訪問彩色畫素中元素的方法如下:
cout<<"b chanel of pixel is = "3.1 基本概念
常用於表示2維座標(x,y)。
3.2 用法
(1)影象座標
對影象而言,我們可以這樣定義:
cv::point pt;
pt.x = 10;
pt.y = 8;
或者:point pt = point(10,8);
point pt(10,8);
(2)或使用如下預定義:
typedef point_ point2i;
typedef point2i point; //上面使用point
typedef point_ point2f;
typedef point_ point2d;
可見point_、point2i、point互相等價,point_和point2f互相等價,point_和point2d互相等價。
(3)基本運算
複製**
pt1 = pt2 + pt3;
pt1 = pt2 - pt3;
pt1 = pt2 * a;
pt1 = a * pt2;
pt1 += pt2;
pt1 -= pt2;
pt1 *= a;
double value = norm(pt); // l2 norm
pt1 == pt2;
pt1 != pt2;
3.3 示例**
(1)設定座標點
// point
point pt;
pt.x = 300;
pt.y = 498;
//或者
//point pt (300,498);
scalar pix = pimg.at(pt);
cout<<「pix(」<(2)各類運算
cv::point pt1(10,20);
cv::point pt2(2,3);
cout<<"pt1 = "<2 = "<24.1 基本概念
模板類size可表示一幅影象或乙個矩形的大小。它包含寬、高2個成員:width , height還有乙個有用的面積函式area()。
4.2 用法
cv::size size(int w, int h);
//或者
cv::size size;
size.width = w;
size.height = h;
4.3 示例**
// size
cv::size size1(6,3);
cv::size size2;
size2.width = 4;
size2.height = 2;
cv::mat mat1(size1,cv_8uc1,cv::scalar(0));
cv::mat mat2(size2,cv_8uc3,cv::scalar(1,2,3));
cout<<"mat1 = "5.1 基本概念
rect是另乙個用於定義2維矩形的模板類。它由兩個引數定義:
矩形左上角座標: (x,y)
矩形的寬和高: width, height
rect可以用來定義影象的roi區域。
5.2 用法
cv::rect rect(x, y, width, height);
5.3 示例**
rotatedrect類
6.1 基本概念
最後乙個基本資料類是一種特殊的矩形稱為rotatedrect。這個類通過中心點,寬度和高度和旋轉角度來表示乙個旋轉的矩形。
6.2 用法
旋轉矩形類的建構函式:
rotatedrect(const point2f& center, const size2f& size, float angle);
引數:center:中心點座標point2f型別
size:矩形的寬度和高度,size2f型別
angle:順時針方向的旋轉角度(單位°),float型別
6.3 示例**
cv::point2f center(100, 100);
cv::size2f size(100, 50);
float bn = 10;
float angle[3];
for (int i = 0; i < 3; i++)
angle[i] = bn+i*20;//angle=10,30,50
for (int i = 0; i < 3; i++)
waitkey(0); //system("pause")亦可
opencv基本資料結構
iplimage 首先介紹重要的成員變數 width和height表示了的尺寸。其次是depth和nchannels,depth是指畫素顏色的取值範圍,nchnannels為影象的通道,可以取1,2,3,4 origin變數定義了影象的原點,有兩個取值,分別是ipl origin bl和ipl or...
OpenCV中的基本資料結構
最近在靜下心來梳理乙份視覺 把當初直接用上但是卻沒仔細咀嚼的東西拿出來整理一下。其實靜下心來做些事情真的不容易,時常被各種雜事打斷,anyway,想辦法保持短時間專注還是必要的。point資料結構表示二維影象中的點,由影象座標x和y組成。用法 point mypoint mypoint.x 100 ...
opencv 基本資料結構的資料儲存
在opencv的專案中遇到需要儲存中間資料的時候,可以用到filestorage類對資料進行讀寫。filestorage類會將資料以xml的形式儲存在檔案中,方便下次載入使用。在我的專案中,需要對特徵點和特徵點描述符進行儲存,使用它十分方便。下面是它的使用方法mat mat mat eye size...