操作
例子預設構造器
cv::point2i p;
cv::point3f p;
複製構造器
cv::point3f p2( p1 );
賦值構造器
cv::point2i( x0, x1 );
cv::point3f( x0, x1, x2 );
轉換為固定 vector 類
(cv::vec3f) p;
元素訪問
p.x; p.y; // and for three-dimensional
// point classes: p.z
點乘float x = p1.dot( p2 );
雙精度點乘
double x = p1.ddot( p2 );
叉乘p1.cross( p2 ); // (for three-dimensional point
// classes only)
查詢點是否位於矩形內
p.inside( r ); // (for two-dimensional point
// classes only)
操作例子
預設構造器
cv::scalar s;
複製構造器
cv::scalar s2( s1 );
賦值構造器
cv::scalar s( x0 ); // 只初始化第乙個元素
cv::scalar s( x0, x1, x2, x3 );
元素級乘法
s1.mul( s2 );
(quaternion) conjugation
s.conj(); // (returns cv::scalar(s0,-s1,-s2,-s2))
(quaternion) real test
s.isreal(); // (returns true iff s1==s2==s3==0)
操作例子
預設構造器
cv::size sz;
cv::size2i sz;
cv::size2f sz;
複製構造器
cv::size sz2( sz1 );
賦值構造器
cv::size2f sz( w, h );
元素訪問
sz.width; sz.height;
計算面積
sz.area();
操作例子
預設構造器
cv::rect r;
複製構造器
cv::rect r2( r1 );
賦值構造器
cv::rect( x, y, w, h );
使用左上點和 size 構造
cv::rect( p, sz );
使用兩個腳點構造
cv::rect( p1, p2 );
元素訪問
r.x; r.y; r.width; r.height;
計算面積
r.area();
提取左上角
r.tl();
提取右下角
r.br();
判斷點是否在
r.contains( p );
矩形操作
操作例子
兩個矩形的交集
cv::rect r3 = r1 & r2;
r1 &= r2;
包含兩個矩形的最小矩形
cv::rect r3 = r1 | r2;
r1 |= r2;
平移矩形
cv::rect rx = r + x;
r += x;
放縮矩形
cv::rect rs = r + s;
r += s;
判斷矩形是否相等
bool eq = (r1 == r2);
判斷矩形是否不相等
bool ne = (r1 != r2);
操作例子
預設構造器
cv::rotatedrect rr();
複製構造器
cv::rotatedrect rr2( rr1 );
從兩點構造
cv::rotatedrect( p1, p2 );
從點(中心店),size,旋轉角度構造
cv::rotatedrect rr( p, sz, theta ) ;
元素訪問
rr.center; rr.size; rr.angle;
返回四個點
rr.points( pts[4] );
操作例子
預設構造器
cv::matx33f m33f; cv::matx43d m43d;
複製構造器
cv::matx22d m22d( n22d );
賦值構造器
cv::matx21f m(x0,x1); cv::matx44d
m(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15);
統一元素矩陣
m33f = cv::matx33f::all( x );
全零矩陣
m23d = cv::matx23d::zeros();
全一矩陣
m16f = cv::matx16f::ones();
單位矩陣
m33f = cv::matx33f::eye();
提取對角元素
m31f = cv::matx33f::diag(); // create a matrix of
// size 3-by-1 of floats
均勻分布矩陣
m33f = cv::matx33f::randu( min, max );
正態分佈矩陣
m33f = cv::matx33f::nrandn( mean, variance );
元素訪問
m( i, j ), m( i ); // one argument for
// one-dimensional matrices only
矩陣代數
m1 = m0; m0 * m1; m0 + m1; m0 – m1;
數乘m * a; a * m; m / a;
比較m1 == m2; m1 != m2;
點乘m1.dot( m2 ); // (sum of element-wise
// multiplications, precision of m)
雙精度點乘
m1.ddot( m2 ); // (sum of element-wise multiplications,
// double precision)
矩陣變形
m91f = m33f.reshape<9,1>();
強制轉換
m44f = (matx44f) m44d
提取(i,j)的子矩陣
m44f.get_minor<2, 2>( i, j );
提取行m14f = m44f.row( i );
提取列m41f = m44f.col( j );
提取矩陣對角線元素
m41f = m44f.diag();
轉置n44f = m44f.t();
取逆n44f = m44f.inv( method ); // (default method is
// cv::decomp_lu)
解線性方程
m31f = m33f.solve( rhs31f, method )
m32f = m33f.solve<2>( rhs32f, method ); // (template forma);
// default method is decomp_lu)
元素級乘法
m1.mul( m2 );
操作例子
預設構造器
vec2s v2s; vec6f v6f; // etc...
複製構造器
vec3f u3f( v3f );
賦值構造器
vec2f v2f(x0,x1); vec6d v6d(x0,x1,x2,x3,x4,x5);
元素訪問
v4f[ i ]; v3w( j ); // (operator() and operator
// both work)
向量叉乘
v3f.cross( u3f );
操作例子
預設構造器
cv::complexf z1; cv::complexd z2;
複製構造器
cv::complexf z2( z1 ); cv::complexf u2f( v2f );
賦值構造器
cv::complexd z1(re0); cv::complexd(re0,im1) ;
元素訪問
z1.re; z1.im;
共軛z2 = z1.conj();
opencv3程式設計入門
今天進行了簡單的影象修補 影象修補.cpp 先對影象進行破壞,然後進行修補 include stdafx.h include include include includeusing namespace std using namespace cv define win name1 原始圖 defi...
OPENCV3 模版匹配
一 引言 模板匹配的作用在影象識別領域作用可大了。那什麼是模板匹配?模板匹配,就是在一幅影象中尋找另一幅模板影象最匹配 也就是最相似 的部分的技術。說的有點抽象,下面給個例子說明就很明白了。在上面這幅全明星照中,我們想找出姚明頭像的位置,並把它標記出來,可以做到嗎?可以,這就是模板匹配的要做的事情。...
OpenCV3學習總結
影象處理技術一般包括影象壓縮,增強和復原,匹配 描述和識別3個部分。影象處理和計算機視覺的區別在於 影象處理側重於 處理 影象 如增強 還原 去噪 分割等 而計算機視覺重點在於使用計算機來模擬人的視覺。opencv由一系列c函式和c 類構成,擁有包括500多個c函式的跨平台的中高層api。openc...