OpenCV将列添加到矩阵中
OpenCV Add columns to a matrix
在OpenCV 2和更高版本中,有一种方法Mat::resize
,可以将任意数量的具有默认值的行添加到矩阵中。对于列,是否有任何等效的方法。如果没有,最有效的方法是什么。感谢
使用cv::hconcat
:
Mat mat;
Mat cols;
cv::hconcat(mat, cols, mat);
最坏的情况是:将图像旋转90度并使用Mat::resize()
,使列变成行。
由于OpenCV按顺序存储矩阵行的元素,因此没有直接的方法来增加列大小,但我为自己提出了两种解决方案,首先使用以下方法(复制元素的顺序比其他方法少),如果您想在矩阵末尾插入一些不特定的行或列,也可以使用类似的方法。
void resizeCol(Mat& m, size_t sz, const Scalar& s)
{
Mat tm(m.rows, m.cols + sz, m.type());
tm.setTo(s);
m.copyTo(tm(Rect(Point(0, 0), m.size())));
m = tm;
}
另一种是,如果你坚持不将数据顺序复制到你的算法中,那么最好用大量的行和列创建矩阵,用较小的子矩阵开始算法,然后用Mat::adjustROI
方法增加矩阵大小。
相关文章:
- 如何在Visual Studio中添加OpenCV文件
- 如何将opencv包添加到CMakelists.txt
- OpenCV-如何将vale添加到图像一部分的所有像素
- 在所有程序中,在Visual Studio中添加OpENCV的一般方法是什么?
- QT 创建器:无法添加 OpenCV dll 库 ( "File format not recognized" )
- 当尝试添加OpenCV库时,CMAKE错误
- 套接字不起作用,当添加 opencv libriary
- 当将OPENCV添加到库时,Apple Mach-O Linker(LD)错误组;可能的修复
- 使用Nuget软件包添加与CUDA的OPENCV到Visual Studio程序
- OpenCV 创建 MAT 并添加元素
- 如何在opencv中为图像添加边框,边框颜色必须与图像颜色相同
- 将OpenCV .dll文件添加到NetBeans C QT应用程序
- 在OpenCV图像中添加文本标签
- OpenCV-将变量添加到类成员崩溃程序
- 将2个Mat的内容添加到另一个Mat opencv c++中
- 将opencv库添加到QT创建者并获取错误:链接器命令失败,退出代码为1
- openCV 2.4.7 添加符号时出错:命令行中缺少 DSO
- 如何使用 OpenCV 为图像添加水印
- 如何使用 Eclipse 在 JNI "include"文件夹中添加 openCV 文件
- 调试断言失败!当我在VC++窗口窗体应用程序中添加opencv标头时