有的时候我们需要将几个矩阵按行或者按列进行合并成一个大矩阵,这在Matlab里面非常的简单,但在OpenCV里面并没有这样的方法,现在我在OpenCV的源码里面发现合并矩阵的方法,分享给大家。
A = [ ]; B = [ ]; C = [A;B];
上面的是Matlab语言的矩阵合并,非常的简洁简单。接下来我给出OpenCV的两个矩阵的合并代码.
Mat mergeRows(Mat A, Mat B) { CV_ASSERT(A.cols == B.cols&&A.type() == B.type()); int totalRows = A.rows + B.rows; Mat mergedDescriptors(totalRows, A.cols, A.type()); Mat submat = mergedDescriptors.rowRange(, A.rows); A.copyTo(submat); submat = mergedDescriptors.rowRange(A.rows, totalRows); B.copyTo(submat); return mergedDescriptors; }
上面的代码是两个矩阵的按行合并,按列合并原理相同,就不再写出来了。