OpenCV数据结构
Posted yangmengke2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV数据结构相关的知识,希望对你有一定的参考价值。
1.分类
基本数据结构(basic data types)
辅助数据结构(Helper object)
大型数据结构(Large array object):mat
STL数据结构:vector,pair
2.基础数据结构:Point、Scalar、Size、cv::Rect、RotatedRect、Matx
3.点Point
3.1Point构造
cv::Point2i p; //定义点p为2位的整形,例如(x,y) x和y取整形数据
cv::Point3f p; //定义点p为3位的浮点型,例如(a,b,c),abc取float数据
cv::Point3f p2(p1); //拷贝构造,将p1拷贝给p2
cv::Point2i p(x0,x1); //赋值构造,x0和x1直接取int型数据
cv::Point3d p(x0,x1,x2); //赋值构造,x0,x1,x2直接取double类型数据
3.2Point取值
int i=p.x; //取Point2i的x坐标
float f=p.y; //Point2f的y坐标
3.3Point函数
p.inside(r); //判断p是否在r中
cv::Point2i p=Point2i(10,10);
cv::Point2i p1=Point2i(200,200);
cv::Recti2i r=Rect2i(0,0,100,100);
bool b=p.inside(r);
bool b1=p1.inside(r);
4. 4位double类型Scalar:n.数量,标量
cv::Scalar是四位双浮点数的点集合 4位double
Scalar(255)表示全白,Scalar(g,b,r)表示一个GBR色彩只是它功能的一种
4.1Scalar构造
cv::Scalar s; //空构造
cv::Scalar s2(s1); //拷贝构造 将s1赋值给s2
cv::Scalar s(x0); //赋值构造
cv::Scalar s(x0,x1,x2,x3); //赋值构造
4.2Scalar函数
s1.mul(s2); //乘法 每一位分别相乘
Scalar s(255,255,255);
Scalar s2(10,100,255);
Scalar ss=s.mul(s2);
5.尺寸Size
5.1Size构造
cv::Size sz; //空构造
cv::Size2i sz; //2位int型
cv::Size2f sz; //2位float型
cv::Size sz2(sz1); //将sz1拷贝给sz2
cv::Size2f sz(w,h); //赋值构造,w和h分别对应属性width和height
5.2取值
sz.width; //取宽度
sz.height; //取高度
size不能够和老的数据结构相互转换。
以上是关于OpenCV数据结构的主要内容,如果未能解决你的问题,请参考以下文章
《学习opencv》笔记——基本数据结构,CvMat,矩阵訪问