opencv的一些函数

opencv的一些函数

  • countNonZero():

计算物体的像素或面积常需要用到计算矩阵中的非零元素个数,OpenCV中使用countNonZero()函数实现。

  • 图像的基本操作

bitwise_and是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=0,0&1=0,0&0=0
bitwise_or是对二进制数据进行“或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“或”操作,1|1=1,1|0=0,0|1=0,0|0=0
bitwise_xor是对二进制数据进行“异或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“异或”操作
bitwise_not是对二进制数据进行“非”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“非”操作

  • mul():

Mat矩阵mul——A.mul(B)
Opencv中mul会计算两个Mat矩阵对应位的乘积,所以要求参与运算的矩阵A的行列和B的行列数一致。计算结果是跟A或B行列数一致的一个Mat矩阵。

  • Mat::t:

t()
转置矩阵。

  • checkVector():

int checkVector(int elemChannels, int depth=-1, bool requireContinuous=true) const;

函数的功能是: 当Mat的channels,depth,和连续性 满足checkVector的参数内容时,

返回(int)(total()*channels()/_elemChannels), 否则返回-1;
returns N if the matrix is 1-channel (N x ptdim) or ptdim-channel (1 x N) or (N x 1); negative number otherwise.

  • reshape函数:

C++: Mat Mat::reshape(int cn, int rows=0) const
cn: 表示通道数(channels), 如果设为0,则表示保持通道数不变,否则则变为设置的通道数。

rows: 表示矩阵行数。 如果设为0,则表示保持原有的行数不变,否则则变为设置的行数。

  • convertTo:

void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const;

m – 目标矩阵。如果m在运算前没有合适的尺寸或类型,将被重新分配。

rtype – 目标矩阵的类型。因为目标矩阵的通道数与源矩阵一样,所以rtype也可以看做是目标矩阵的位深度。如果rtype为负值,目标矩阵和源矩阵将使用同样的类型。

alpha – 尺度变换因子(可选)。

beta – 附加到尺度变换后的值上的偏移量(可选)。

  • push_back:

将元素添加到矩阵的底部。(在为mat增加一行的时候,用到push_back)

  • type:

表示了矩阵中元素的类型以及矩阵的通道个数,它是一系列的预定义的常量,其命名规则为CV_(位数)+(数据类型)+(通道数)。
#define CV_8U 0
#define CV_8S 1
#define CV_16U 2
#define CV_16S 3
#define CV_32S 4
#define CV_32F 5
#define CV_64F 6
#define CV_USRTYPE1 7

  • eye():

创建一个单位阵

  • noArray():

矩阵是个空参数,或者很多代码里都用cv::Mat()作为空参
只能作为函数的形参参数使用,不要试图声明一个InputArray类型的变量。

  • create():

为矩阵分配空间

  • needed():

检测输出的矩阵是否需要被计算

  • determinant():

求行列式

  • Scalar():

scalar是将图像设置成单一灰度和颜色

  • resize():

更改矩阵的行数。
C++: void Mat::resize(size_t sz)

C++: void Mat::resize(size_t sz, const Scalar& s)

参数

sz –新的行数。

s –分配给新添加的元素的值。

该方法更改矩阵的行数。如果矩阵重新分配,第一最少(Mat::rows,sz) 行数要保留下来。

  • reserve():

保留一定数量的行的空间。

C++: void Mat::reserve(size_t sz)

参数

sz –的行数。

该方法sz行存储空间。如果矩阵已经有足够的空间来存储sz行,没有任何异常发生。如果矩阵重新分配,保留前(Mat::rows) 行。

  • copyTo()

图像的复制
src.copyTo(dst)

  • clone()

图像的复制
src.clone()

发布了9 篇原创文章 · 获赞 6 · 访问量 3255

猜你喜欢

转载自blog.csdn.net/u010307048/article/details/89210445