【OpenCV】Learning OpenCV3 第五章笔记

【OpenCV】Learning OpenCV3 第五章笔记

数组操作

注意其中许多操作已经被运算符重载,比如add() 可以直接通过+完成,但因为这些函数一般都还有一个mask的可选参数,mask为0的位置不会计算输出

函数简介code
cv::abs()求绝对值m2 = cv::abs(m0-m1)
cv::absdiff()求两个矩阵之差的绝对值cv::absdiff(src1,src2,dst) // dst = cv::abs(src1-src2)
cv::add()求两个矩阵之和cv::add(src1,src2,dst) // dst = src1 + src2
cv::addWeighted()带权加法cv::addWeighted(src1,alpha,src2,beta,gamma,dst) // dst=src1*a+src2*b+r
cv::bitwise_and()执行每个元素每个bit的与操作cv::bitwise_and(src1,src2,dst) // dst = src1 & src2
cv::bitwise_not()逐元素逐bit的非操作cv::bitwise_not(src,dst) // dst = !src
cv::bitwise_or()逐元素的或操作cv::bitwise_or(src1,src2,dst) // dst = src1 | src2
cv::bitwise_xor()亦或操作cv::bitwise_xor(src1,src2,dst) // dst= src1 ^ src2
cv::calCovarMatrix()计算协方差矩阵
cv::cartToPolar()将直角坐标转化为极坐标
cv::checkRange()检查数组中的每个数是否在范围内,不在则返回False
cv::compare()对两个数组中的元素进行逐个比较,比较的准则在P111表格5-3中可以直接通过比较运算符做到dst = src1 > src2;dst = src1 != src2;
cv::completeSymm()填充一个对称矩阵,将下三角填到上三角,或反过来cv::completeSymm(src,lowerTOUpper=false)
cv::convertScaleAbs()本质是四个操作,1.scale 2.offset 3.求绝对值 4.cast to charcv::convertScaleAbs(src,dst,alpha=1.0,beta=0.0) // dst = cv::abs(alpha*src+beta)
cv::countNonZero()数几个非0int count = cv::countNoneZero(mtx)
cv::cvarrToMat()将旧版本(opencv2.1以前)的array转化为Mat
cv::dct()离散余弦变换(discrete cosine transform)之后的章节会详细介绍
cv::dft()离散傅里叶变换(discrete Fourier transform)之后的章节会详细介绍
cv::cvtColor()用来从在彩色空间之间做转换,灰度图转换为彩色图时,所有通道的值是一样的,反过来,则按照公式 Y = ( 0.229 ) R + ( 0.587 ) G + ( 0.114 ) B Y = (0.229)R+(0.587)G+(0.114)B Y=(0.229)R+(0.587)G+(0.114)B
cv::determinant()计算方阵的行列式
cv::divide()element-wise的除法cv::divide(src1,src2,dst)
cv::eigen()计算特征值,特征向量cv::eigen(src,eigenvalues,eigenvectors)
cv::exp()self-explained
cv::extractImageCOI()从2.1版本前的数组中获得COI
cv::flip()翻转cv::flip(src,dst,flipCode)
cv::gemm()广义矩阵乘法cv::getConvertElement()和cv::getConvertScaleElem()
cv::idct()和cv::idft()cv::dct(),cv::dft()的反变换
cv::inRange()检查输入是否在范围内
cv::insertImageCOI()史前时代的插入channel的方法
cv::invert()求逆矩阵
cv::logself-explained
cv::LUT()lookup table transform
cv::magnitude()计算模长
cv::Mahalanobis()马氏距离
cv::max()逐元素计算最大值
cv::mean()求平均值
cv::meanStdDev()求均值和方差
cv::merge()结合输入得到输出
cv::min()元素计算最小值
cv::minMaxIdx()找到最大最小值并返回其位置
cv::minMaxLoc()同上只不过返回的是Point
cv::mixChannels()调整channel的顺序
cv::mulSpectrums()光谱上的操作
cv::multiply()逐元素的乘法
cv::mulTransposed()和转置后的矩阵相乘
cv::norm()计算矩阵的1、2、无穷范数
cv::normaliza()与norm有类似用法
cv::perspectiveTransform()坐标投影变换
cv::phase()计算方位角
cv::polarToCart()极坐标转化为笛卡尔坐标
cv::pow()逐元素的指数运算
cv::randu()生成均匀分布的随机数
cv::randn()生成正态分布的随机数
cv::randShuffle()打乱一维数组
cv::reduce()reduce to sum avg max min
cv::repeat()复制一个小的数组到一个大的数组中,直到填满大数组
cv::scaleAdd()加法
cv::setIdentity()获得一个对角的常值矩阵
cv::solve()解线性方程
cv::solveCubic()解三次方程
cv::solvePoly()解多项式方程
cv::sort()分别对行或列进行排序
cv::sourIdx()类似sort
cv::split()分开得到单独的channel
cv::sqrt()逐元素开方
cv::subtract()
cv::sum()对数组求和
cv::trace()求对角线和
cv::transform()计算线性映射
cv::transpose()转置

总结

本章给出了cv::Mat可以进行的各种操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值