OpenCV数据类型
cv::Mat
原型:cv::Mat(int rows, int cols, int type)、cv::Mat(cv::Size sz, int type)、cv::Mat(int ndims,const int* sies,int type)
作用:任意维度的稠密数组
参数:指定数据类型的二维数组、指定数据类型的二维数组、指定数据类型的多维数组
操作:cv::Mat(const Mat&mat,const cv::Range&rows,const cv::Range&cols) 从指定的行列中复制数据的复制构造函数
cv::Mat::zeros(rows,clos,type) 构造一个指定类型的矩阵
M.at<int>(pt) 整形矩阵M中处于(pt.x ,pt.y)的元素
m.row(i) m中的i行数组
m.rowRange(i0,i1) m中第i0行到的i1-1行所构成的数组
m.diag(d) m中偏移为d的对角线所组成的数组
m(cv::Rect(i0,j0,w,h)) m中从点(i0,j0)到点(i0+w-1,j0+h-1)所包含数据组成的数组
cv::saturate_cast<>()
作用:饱和转换防溢出
cv::SparesMat
原型:cv::SparesMat sm(3,zs,CV_32F)
作用:稀疏矩阵(在非0元素非常少的情况下使用)
参数:创建一个由sz指定维度大小的三通道稀疏浮点矩阵
操作:cv::SparseMat::ptr()、cv::SparseMat::ref()、cv::SparseMat::value()、cv::SparseMat::find()
cv::Vec<>
原型:cv::Vec{2,3,4,6}{b,w,s,i,f,d}
作用:固定向量类
参数:cv::Vec2i、cv::Vec3i、cv::Vec4d (分别对应2个元素的整型向量、3和元素的整型向量和4个元素的双精度浮点向量):
操作:v3f.cross(u3f)向量叉乘
cv::Matx<>
原型:cv::Matx{1,2,3,4,6}{1,2,3,4,6}{f,d}
作用:固定矩阵类
参数:与Vec<>类似;运算效率高、消耗动态内存分配操作
操作:Matx33f::all(x)、Matx23d::zeros()、Matx16f::ones()、Matx33f::eye()、m1.dot(m2) 点积
cv::Point
原型:cv::Point{2,3}{i,f}
作用:点类
参数:cv::Point2i、cv::Point3i
操作:p1.dot(p2) 点乘、p1.cross(p2) 叉乘、p.inside(r) 判断一个点p是否在矩形r内
cv::Scalar
原型:cv::Scalar(x0,x1,x2,x3)
作用:四维点类(四维双精度向量的快速表示)
参数:
操作:s1.mul(s2) 元素相乘、s.conj() (四元素)共轭、s.isReal() (四元素)真值测试
cv::Size
原型:cv::Size(w,h)
作用:获取width和height,size类在实际操作是与Point类相似,而且可以与Point类相互转换
参数:cv::Size、cv::Size2i、cv::Size2f
操作:sz.area() 计算面积
cv::Rect
原型:cv::Rect(x,y,w,h) 、cv::Rect(p,sz)、cv::Rect(p1,p2)
作用:矩形类Rect包含Point类的成员x和y(矩形左上角)和size类的成员with和heigh
参数:起始点和大小、起始点和大小、两个对角
操作:r.area() 计算面积、r.tl() 提取左上角、r.br() 提取右下角、r.contains(p) 判断点p是否在矩形r内
r3=r1&r2 矩形交集区域、r3=r1|r2 矩形共同区域、rx=r+x 平移x个数量、rs=r+s 扩大size大小、r1==r2 矩形是否相等
cv::RotatedRect
原型:cv::RotatedRect(p,sz,theta)
作用:包含一个中心点cv::Point2f、一个大小cv::Size2f和一个额外的角度float的容器
参数:中心点、大小和角度
操作:
cv::Complex
原型:cv::Complexf(re0)、cv::Complexd(re0,im1)
作用:基础类型 复数类
参数:单精度复数、双精度复数
操作:z1.conj() 复共轭
cv::Range
原型:cv::Range(int start, int end)
作用:cv::Range用来确定一个连续的整数序列
参数:范围包含初始值start,但不包含终止值
操作:rng.size() 获取元素数量、rng.empty() 是否含有元素
工具函数
cv::alignPtr() 对齐指针到给定字节数
cv::alignSize() 将缓存区大小与给定的字节数对齐
cv::allocate() 分配一个C风格的数组对象
cvCeil() 近似一个浮点数x到不小于x的最近的整数(向上取整)
cv::cubeRoot 计算一个数的立方根
cv::CV_Assert() 如果给定的条件不为真,则抛出异常
cv::deallocate() 释放一个c风格的数组对象
cv::fastAtan2() 向量的二维角度的计算
cv::fastFree() 释放一个内存缓存区
cv::fastMalloc() 分配一个对其的内存缓存区
cvFloor() 近似一个浮点数x到不大于x的最近的整数(向下取整数)
cv::format() 以sprintf类似格式创建一个STL字符串
cvIsInf() 判断一个浮点数x是否无穷
cvIsNaN() 判断一个浮点数x是否不是一个数
cvRound() 近似一个浮点数x到最近的整数
OpenCV矩阵操作
OpenCV绘图和注释
OpenCV函数子
OpenCV图像、视频与数据文件