opencv 中常用的数据类型
2017-08-18 11:14
169 查看
1.点的表示:Point类
Point类数据结构表示了二维坐标系下的点,有数据成员x,y。
用法;
Point p;
p.x = 1, p.y = 2;
或者:
Point p = Point(1, 2);
另外,在定义中Point_<int>、Point2i和Point相互等价
Point_<float>和Point2f相互等价
2.颜色的表示:Scalar类
Scalar()表示具有四个元素的数组,在opencv中通常用于传递与设置像素值,如RGB的颜色值。而RGB的颜色值为三个参数(三通道),对与Scalar函数来说,第四个参数可以忽略不写出。
例:
Scalar(a, b, c);//定义的RGB颜色值中红色分量为a,绿色分量为b,蓝色分量为a;
Scalar类的源头为Scalar_类,而Scalar_类是Vec4x的一个变种,常用的Scalar就是Scalar_<double>。故函数参数的输入可以是Mat也可以使Scalar。
3.尺寸表示类:Size类
在Size类相关源码中将Size_<int> 的别名定为Size和Size2i。
Size_的构造函数为:
Size_(_Tp _width, _Tp _height);
Size_(const Size_& sz);
Size_(const CvSize& sz);
Size_(const CvSize2D32f& sz);
Size_(const Point_<_Tp>& pt);
常用到的就是:Size_(_Tp _width, _Tp _height);
另外在该类中还定义了公共数据成员width、height,可直接调用。
4.矩形表示类:Rect类
Rect类的成员变量有x、y、width、height,分别为左上角点的坐标和矩形的长和高。
常用的成员函数有:
Size()——返回值为对应的Size对象
area()——返回矩形的面积
contains(Point)——判断点是否在矩形里
inside(Rect)——判断矩形是否在该矩形里
tl()——返回左上角点的坐标
br()——返回右下角的坐标
求两矩形交集:
Rect rect = rect1 & rect2;
求两矩形并集:
Rect rect = rect1 | rect2;
矩形平移:
Rect rectShift = rect + point;
矩形缩放:
Rect rect = rect1 + size;
5.Matx 是个轻量级的Mat,必须在使用前确定其尺寸,比如一个2*3的float型Matx,可以声明为:Matx23f;
6.Vec是opencv中的一个向量类
Vec<int, n> 就是一个向量类,可以用来定义向量对象等。
第一个参数int标识Vec中储存的为int类型向量
第二个参数n为一个整形数值,表示每个Vec对象中储存的是n个int值,即为n维向量。
7.Rang类
Range类通常用于确定图片的一块范围,类的源代码:
class Range
{
public:
...
int start, end;
};
应用:
截取原图的指定位置大小的区域
roi_img = src_img(Range(0,100),Range(50,200));
这里截取的就是原图第0行至第99行,第50列至199列的区域图像.
这里要注意的就是Range的两个参数范围分别为左包含和右不包含
Point类数据结构表示了二维坐标系下的点,有数据成员x,y。
用法;
Point p;
p.x = 1, p.y = 2;
或者:
Point p = Point(1, 2);
另外,在定义中Point_<int>、Point2i和Point相互等价
Point_<float>和Point2f相互等价
2.颜色的表示:Scalar类
Scalar()表示具有四个元素的数组,在opencv中通常用于传递与设置像素值,如RGB的颜色值。而RGB的颜色值为三个参数(三通道),对与Scalar函数来说,第四个参数可以忽略不写出。
例:
Scalar(a, b, c);//定义的RGB颜色值中红色分量为a,绿色分量为b,蓝色分量为a;
Scalar类的源头为Scalar_类,而Scalar_类是Vec4x的一个变种,常用的Scalar就是Scalar_<double>。故函数参数的输入可以是Mat也可以使Scalar。
3.尺寸表示类:Size类
在Size类相关源码中将Size_<int> 的别名定为Size和Size2i。
Size_的构造函数为:
Size_(_Tp _width, _Tp _height);
Size_(const Size_& sz);
Size_(const CvSize& sz);
Size_(const CvSize2D32f& sz);
Size_(const Point_<_Tp>& pt);
常用到的就是:Size_(_Tp _width, _Tp _height);
另外在该类中还定义了公共数据成员width、height,可直接调用。
4.矩形表示类:Rect类
Rect类的成员变量有x、y、width、height,分别为左上角点的坐标和矩形的长和高。
常用的成员函数有:
Size()——返回值为对应的Size对象
area()——返回矩形的面积
contains(Point)——判断点是否在矩形里
inside(Rect)——判断矩形是否在该矩形里
tl()——返回左上角点的坐标
br()——返回右下角的坐标
求两矩形交集:
Rect rect = rect1 & rect2;
求两矩形并集:
Rect rect = rect1 | rect2;
矩形平移:
Rect rectShift = rect + point;
矩形缩放:
Rect rect = rect1 + size;
5.Matx 是个轻量级的Mat,必须在使用前确定其尺寸,比如一个2*3的float型Matx,可以声明为:Matx23f;
6.Vec是opencv中的一个向量类
Vec<int, n> 就是一个向量类,可以用来定义向量对象等。
第一个参数int标识Vec中储存的为int类型向量
第二个参数n为一个整形数值,表示每个Vec对象中储存的是n个int值,即为n维向量。
7.Rang类
Range类通常用于确定图片的一块范围,类的源代码:
class Range
{
public:
...
int start, end;
};
应用:
截取原图的指定位置大小的区域
roi_img = src_img(Range(0,100),Range(50,200));
这里截取的就是原图第0行至第99行,第50列至199列的区域图像.
这里要注意的就是Range的两个参数范围分别为左包含和右不包含
相关文章推荐
- OpenCV 2.4.X最常用的数据类型
- OpenCV 2.4.X最常用的数据类型
- Opencv中的Mat类型常用函数数据
- 常用的Opencv的数据类型
- OpenCV中数据类型和常用数据类型对应关系
- opencv常用数据类型的转换(个人整理)
- C# 中常用数据类型与控件类型的命名规则
- Mybatis_mybatis常用jdbcType数据类型
- 常用数据类型使用转换详解
- JAVA常用的高级数据类型
- 常用数据类型对应字节数
- python实操(5):python数据类型及常用操作,数字、字符串、元组、列表、字典、集合
- MySQL数据类型和常用字段属性总结
- C# 中常用数据类型与控件类型的命名规则
- SQL Server系列(1) -- 常用数据类型
- python数据类型及其常用方法
- Mysql的常用数据类型以及用途总结
- mysql数据库常用数据类型
- SAP常用知识点{系统变量|TCODE|消息类型|数据类型|变量声明|Internal Table}
- Mysql常用数据类型大小及范围