Opencv3 基础数据类型

Opencv3 基础数据类型

  • b:unsigned character
  • s:short integer
  • i:32-bit integer
  • f:32-bit floating-point number
  • d:64-bit floating-point number

Point: Point2i, Point3f

操作

例子

默认构造器

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)

 

 

 

 

 

 

 

 

 

 

 

 

 

Scalar : fixed vector class

操作例子
默认构造器cv::Scalar s;
复制构造器cv::Scalar s2( s1 );
赋值构造器

cv::Scalar s( x0 ); // 只初始化第一个元素

cv::Scalar s( x0, x1, x2, x3 );

元素级乘法s1.mul( s2 );
(Quaternion) conjugations.conj(); // (returns cv::Scalar(s0,-s1,-s2,-s2))
(Quaternion) real tests.isReal(); // (returns true iff s1==s2==s3==0)

 

 

 

 

 

 

 

 

Size: Size, Size2i, Size2f

操作例子
默认构造器cv::Size sz;
cv::Size2i sz;
cv::Size2f sz;
复制构造器cv::Size sz2( sz1 );
赋值构造器cv::Size2f sz( w, h );
元素访问sz.width; sz.height;
计算面积sz.area();

 

 

 

 

 

 

 

 

Rect

操作例子
默认构造器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);

 

 

 

 

 

 

 

 

 

 

RotatedRect

操作例子
默认构造器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] );

 

 

 

 

 

 

 

 

Fixed Matrix: Matx{1,2,...}{1,2,...}{f,d}

操作例子
默认构造器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 );

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Fixed Vector: Vec{2,3,4,6}{b,s,w,i,f,d}

操作例子
默认构造器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 );

 

 

 

 

 

 

 

Complex Number

操作例子
默认构造器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();

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值