一:CV::Mat::Mat(Int rows, int cols, int type)
CV:命名空间 Mat:类(OpenCV使用频率最高的类) Mat:构造函数
参数解释:
rows:矩阵行数
cols:矩阵列数
Type:数据类型(基本数据类型+通道数)
其中数据类型(例:CV_16SC2)比较繁杂,下面将列举
基本数据类型:
CV_8U(unsigned char),CV_16S(signed short),CV_16U(unsigned short),CV_32S(signed int),CV_32F(signed float),CV_64F(signed double)。
U:unsigned(无符号型)
S:signed(有符号型)
F:float(浮点数型)
通道数:
总共分1~4通道,C1,C2,C3,C4,1~3通道对应像素的三原色(B)蓝(G)绿(R)宏。通道四会再加上A通道,也就是透明度。
eg:CV:Mat:Ones(2, 2, CV_8UC3); // 表示2 * 2的矩阵,其中每个元素都是char类型的,而且每个元素是三通道的,图示如下:
二:MinMaxLoc
MinMaxLoc是OpenCV中的函数,是为了找到多维数组中的最大值,最小值,最大值所在索引,最小值所在索引。
函数原型:
Void MinMaxLoc(InputArray src,double * minval,double * maxval,point * minLoc,point * maxloc,InputArray mask = noArray());
参数解释:
src:输入数组或者向量。
minval:存储的最小值的实际值,如果不需要,可以设为0。
maxval:存储的最大值的实际值,如果不需要,可以设为0。
minLoc:存储的最小值的实际位置,如果不需要,可以设为0。
maxloc:存储的最大值的实际位置,如果不需要,可以设为0。
mask :可选的掩码,其大小和类型必须和src相同,如果指定了该值,函数只查找具有非需掩码的元素。
三:MeanStdDev
MeanStdDev是OpenCV中的函数,用于输出数组中平均值与标准差。
原型:
CV_EXPORTS_W void MeanStdDev(InputArray src,OutputArray mean,OutputArray stddev,InputArray mask = noArray());
参数解释:
src:输入数组或者向量。
mean:计算出的平均值。
stddev:计算出的标准差。
mask:操作掩码,用来标记求取那些区域。
四:CV::Imread
Imread用于读取图片。
原型:
Mat imread(const String& fileName, int flags);
参数解释:
fileName:表示图像下路径
flags:读取图像的方式,如下列举常用的
IMREAD_UNCHANGED = -1; // 表示读取原图,不做任何改变
IMREAD_GRAYSCALE = 0; // 表示以灰度图方式读取原图
IMREAD_COLOR = 1; // 表示以RGB方式读取原图
五:ConvertTo
把一个矩阵从一种数据转换到另一种数据类型,同时可以带上缩放因子与增量。
原型:
void ConvertTo(OutputArray m, int rtype, double alpha = 1, double beta = 0) const;
参数:
m :目标矩阵。如果m在运算前没有合适的尺寸或类型,将被重新分配。
rtype:目标矩阵的类型。因为目标矩阵的通道数与源矩阵一样,所以rtype也可以看做是目标矩阵的位深度。如果rtype为负值,目标矩阵和源矩阵将使用同样的类型。
alpha:尺度变换因子(可选)。默认值是1。即把原矩阵中的每一个元素都乘以alpha。
beta:附加到尺度变换后的值上的偏移量(可选)。默认值是0。即把原矩阵中的每一个元素都乘以alpha,再加上beta。
六:CV::Rect
一个矩阵对象,是一个由点组成的面。
原型:
typedef Rect_<int> Rect;
eg:
Rect rect1(100, 50, 50, 100); //参数:左上角x坐标,y坐标,矩阵宽,高
rect1.area(); // 返回rect1的面积
rect1.size(); // 返回rect1的尺寸
rect1.t1(); // 返回rect1的左上顶点坐标
rect1.br(); // 返回rect1的右下顶点坐标
rect1.width(); // 返回rect1的宽度
rect1.height(); // 返回rect1的高度
rect1.contains(Point(x, y)); // 返回布尔变量, 判断rect1是否包含point(x, y)点