Mat::colRange
为指定的行span创建一个矩阵头。
C++: Mat Mat::colRange(int startcol, int endcol) const
C++: Mat Mat::colRange(const Range& r) const
参数:
startcol– 一个包容性的0基(从0开始)的span列起始索引。
endcol–一个0基的独占性的列span.终止索引。
r–Range 结构包含着起始和终止的索引值。该方法给矩阵指定的列span创建了新的头。 与Mat::row() 和 Mat::col()相类似这是一个复杂度为O(1)的操作。
Mat::diag
提取或创建矩阵对角线。
C++: Mat Mat::diag(int d) const
C++: static Mat Mat::diag(const Mat& matD)
参数:
d– 对角线的索引值,可以是以下的值:
– d=0 是主对角线
– d>0表示下半部的对角线。例如:d=1对角线是紧挨着住对角线并位于矩阵下方。
– d<0表示来自矩阵上半部的对角线。例如:d= 1表示对角线被设置在对角线的上方并紧挨着。
matD– 单列用于形成矩阵对角线的列。
该方法为指定的矩阵创建一个新的头。然后新矩阵被分割为单独的列矩阵。类似于Mat::row() 和Mat::col() ,它是复杂度为O(1)操作。
Mat::clone
创建一个数组及其基础数据的完整副本。
C++: Mat Mat::clone() const
该方法创建了一个完整的数组副本。原始的step[]不会被考虑在内的。因此数组的副本是一占用total()*elemSize()字节的连续阵列。
Mat::copyTo
把矩阵复制到另一个矩阵中。
C++: void Mat::copyTo(OutputArray m) const
C++: void Mat::copyTo(OutputArray m, InputArray mask) const
参数:
m– 目标矩阵。如果它的尺寸和类型不正确,在操作之前会重新分配。
mask– 操作掩码。它的非零元素表示矩阵中某个要被复制。
该方法把矩阵的复制到另一个新的矩阵中在复制之前该方法会调用
m.create(this->size(), this->type);
因此,目标矩阵会在必要的情况下重新分配
尽管m.copyTo(m) works ?awlessly,该函数并不处理源矩阵和目标矩阵之间有重叠的部分的情况。当操作掩码指定以及上述的Mat::create重新分配矩阵,新分配的矩阵在数据复制到里面之前全都被初始化为0。
Mat::convertTo
在缩放或不缩放的情况下转换为另一种数据类型。
C++:
void Mat::convertTo(OutputArray m,int rtype,double alpha=1,double beta=0)const
参数:
m– 目标矩阵。如果它的尺寸和类型不正确,在操作之前会重新分配。
rtype– 要求是目标矩阵的类型,或者在当前通道数与源矩阵通道数相同的情况下的depth。如果rtype 为负,目标矩阵与源矩阵类型相同。
beta– 可选的delta加到缩放值中去。
该方法将源像素值转化为目标类型saturate_cast<> 要放在最后以避免溢出
m( x;y) = saturate_cast < rType > ( α*( *this)( x;y) +β)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-65348-6.html
用老百姓的民用船只把它围住