概述
Opencv数据结构与基本绘图
1.基础图像容器Mat的用法
2.Opencv 中的多种格式化输出方法
3.常用的数据结构
1. Mat结构的使用
从OpenCV踏入2.0版本丝带,使用Mat类数据结构作为主打后,OpenCV有了很大的变化。
(1)不要再手动为其开辟空间。
(2)不必再不需要时立即将空间释放
1.1 使用Mat()构造函数创建Mat对象
最常用的方法是直接使用Mat构造函数,这种方法简单明了
Mat M(2,2, CV_8UC3, Scalar(0,0,255) );
参数一: 矩阵行数
参数二:矩阵列数
参数三:指定存储袁术的数据类型以及每个矩阵点的通道数。
CV_8UC3 CV_[位数][带符号与否][类型前缀]C[通道数] 八位的unsigned char 型 三通道
参数四:Scalar( , , )初始化矩阵
2. 输出其他常用数据结构
2.1定义和输出二维点
Point2f p(6, 2);
cout << "[二维点]p“ << p<<endl;
2.2 定义和输出三维点
Point3f p3f(8, 2, 0);
cout <<"[三维点]p3f" << p3f << endl;
2.3 定义和输出基于Mat的std::vector
vector<float> v;
v.push_back(3) ;
v.push_back(5) ;
v.push_back(7) ;
cout << "[基于Mat的vector]v " << Mat[v] <<endl;
2.4 定义和输出std::vector点
vector<Point3f> Points(20);
for (size_t i = 0; i < Points.size(); ++i)
Points[i] = Point2f( (float)(i * 5), (float)(i % 7) );
cout << "[二维点向量]points = " << Points<<endl;
3. 常用数据结构和函数
3.1 点的表示:Point类
在OpenCV中有如下定义
typedef Point_<int> Point2i;
typedef Point2i Point;
typedef Point_<float> Point2f;
Point_<int>、Point2i、Point_<float>互相等价 所以 Point2i、Point、Point2f 互相等价;
Point point ;
point.x = 10;
point.y = 8;
或者:
Point point = Point(10, 8 );
3.2 颜色的表示:Scalar类
Scalar(a, b, c );
a表示Blue(蓝色)b表示Green(绿色)a表示Red(红色);
3.3 尺寸的表示:Size类
Size(5, 5 );// 构造出的Size宽度和高度都是5,
3.4 矩形的表示:Rect类
Rect(x,y,width,height);// 左上角的坐标 矩形的宽、高
最后
以上就是潇洒钢笔为你收集整理的Opencv 学习之路(二)1. Mat结构的使用的全部内容,希望文章能够帮你解决Opencv 学习之路(二)1. Mat结构的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复