学习OpenCV3——第五章:矩阵操作

一、矩阵还可以做很多事情

由前面的章节可知,矩阵类的成员函数可以进行很多基本的操作。然而,除此以外,也有很多操作被表示为“友元”函数,它们的输入为矩阵类型,或者输出为矩阵类型,或者输入输出同为矩阵类型。这些函数及其参数将在表5-1介绍。

表5-1:基本的矩阵和图像算子
函数名称描述
cv::abs()计算矩阵中所有元素的绝对值
cv::absdiff()计算两个矩阵差值的绝对值
cv::add()实现两个矩阵逐元素相加
cv::addWeighted实现两个矩阵逐元素加权求和(alpha blending)
cv::bitwise_and计算两个矩阵逐元素按位与
cv::bitwise_not计算两个矩阵逐元素按位非
cv::bitwise_or计算两个矩阵逐元素按位或
cv::bitwise_xor计算两个矩阵逐元素按位异或
cv::calcCovarMatrix()计算一组n维向量的协方差
cv::cartToPolar()计算二维向量的角度和幅度
cv::checkRange()检查矩阵的无效值
cv::compare()对两个矩阵中的所有元素应用所选择的比较运算符
cv::completeSymm()通过将一半元素复制到另一半来使矩阵对称
cv::convertScaleAbs()缩放矩阵,取绝对值,然后转换为8位无符号数
cv::countNonZero()计算矩阵中非零元素个数
cv::arrToMat()将2.1版本的矩阵类型转换为cv::Mat
cv::dct()计算矩阵的离散余弦变换
cv::determinant()计算方阵的行列式
cv::dft()计算矩阵的离散傅里叶变换
cv::divide()实现两个矩阵逐元素相除
cv::eigen()计算方阵的特征值和特征向量
cv::exp()实现矩阵的逐元素求指数幂
cv::extractImageCOI()从2.1版本的矩阵类型中提取单个通道
cv::flip()绕选定的轴翻转矩阵
cv::gemm()实现广义矩阵乘法
cv::getConvertElem()获取单像素类型转换函数
cv::getConvertScaleElem()获取单像素类型的转换和缩放函数
cv::idct()计算矩阵的离散余弦逆变换
cv::idft()计算矩阵的离散傅里叶逆变换
cv::inRange()测试矩阵的元素是否再两个其他矩阵的值之间
cv::invert()求方阵的逆
cv::log()计算矩阵逐元素的自然对数
cv::magnitude()计算二维向量的幅度
cv::LUT()将矩阵转换为查找表的索引
cv::Mahalanobis()计算两个向量之间的马氏距离
cv::max()计算两个矩阵逐元素的最大值
cv::mean()计算矩阵元素的平均值
cv::meanStdDev()计算矩阵元素的均值和和标准差
cv::merge()将多个单通道矩阵合并成一个多通道矩阵
cv::min()计算两个矩阵逐元素的最小值
cv::minMaxLoc()在矩阵中寻找最小值和最大值
cv::mixChannels()打乱从输入矩阵到输出矩阵的通道
cv::mulSpectrums()计算两个傅里叶谱的逐元素乘积
cv::multiply()计算两个矩阵的逐元素乘积
cv::mulTransposed()计算矩阵和矩阵的转置的乘积
cv::norm()计算两个矩阵的归一化相关系数
cv::normalize()将矩阵中的元素标准化到某一数值内
cv::perspectiveTransform()实现一系列向量的透视矩阵变化
cv::phase()计算二维向量的方向
cv::polarToCart()已知角度和幅度,求出对应的二维向量
cv::pow()对矩阵内的每个元素求幂
cv::randu()用均匀分布的随机数填充给定的矩阵
cv::randn()用正态分布的随机数填充给定的矩阵
cv::randShuffle()随机打乱矩阵元素
cv::reduce()通过特定的操作将二维矩阵缩减为向量
cv::repeat()将一个矩阵的内容复制到另一个矩阵
cv::saturate_cast<>()转换原始类型(模板函数)
cv::scaleAdd()逐元素计算两个矩阵的和并且第一个矩阵可以选择缩放
cv::setIdentity()将矩阵中对角线上的元素设为1,其他置0
0cv::solve()求出线性方程的解
cv::solveCubic()找到(唯一的)三次方程的解
cv::solvePoly()找到多项式方程的复根
cv::sort()在矩阵中排序任意行或列的元素
cv::sortIdx()与cv::sort()的目的相同,除了矩阵是未修改的,并返回索引
cv::split()将一个多通道矩阵分割成多个单通道矩阵
cv::sqrt()计算矩阵逐元素的平方根
cv::subtract()实现两个矩阵逐元素相减
cv::sum()对矩阵中的所有元素求和
cv::theRNG()返回随机数生成器
cv::trace()计算一个矩阵的迹
cv::transform()在矩阵的每个元素上应用矩阵变换
cv::transpose()矩阵的转置运算

 

具体使用实例可自行百度。

二、小结

在本章中,我们介绍了利用OpenCV最重要的矩阵结构cv::Mat可以完成的大量基本操作,包括矩阵、图像、和多维矩阵等。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值