OpenCV常用方法记录(1) CV::Mat,CV::MinMaxLoc,CV:MeanStdDev,CV::Imread,CV::ConvertTo,CV::Rect

一: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)点

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值