c – 如何在OpenCV中创建空Mat?

c – 如何在OpenCV中创建空Mat?,第1张

概述如何在OpenCV中创建空Mat?创建后我想使用push_back方法在Mat中推送行. 就像是: Mat M(0,3,CV_32FC1); 或唯一的选择是: Mat M;M.converTo(M,CV_32FC1); ? 您可以使用以下命令创建一个空矩阵: Mat m; 如果您已经知道它的类型,您可以: Mat1f m; // Empty matrix of float 如果你知道它的大小: 如何在OpenCV中创建空Mat?创建后我想使用push_back方法在Mat中推送行.

就像是:

Mat M(0,3,CV_32FC1);

或唯一的选择是:

Mat M;M.converTo(M,CV_32FC1);

解决方法 您可以使用以下命令创建一个空矩阵:
Mat m;

如果您已经知道它的类型,您可以:

Mat1f m; // Empty matrix of float

如果你知道它的大小:

Mat1f m(rows,cols);  // rows,cols are intor Mat1f m(size);  // size is cv::Size

您还可以添加默认值:

Mat1f m(2,4.1f);//// 4.1 4.1 4.1// 4.1 4.1 4.1

如果你想用push_back为空矩阵添加值,你可以按照@berak的建议去做:

Mat1f m;m.push_back(Mat1f(1,3.5f));   // The  first push back defines type and wIDth of the matrixm.push_back(Mat1f(1,9.1f));m.push_back(Mat1f(1,2.7f));// m// 3.5 3.5 3.5// 9.1 9.1 9.1// 2.7 2.7 2.7

如果你需要push_back包含在vector<>中的数据,你应该注意将值放在矩阵中并转置它.

vector<float> v1 = {1.1f,2.2f,3.3f,4.4f,5.5f};vector<float> v2 = {1.2f,2.3f,3.4f,4.5f,5.6f};Mat1f m1(Mat1f(v1).t());Mat1f m2(Mat1f(v2).t());Mat1f m;m.push_back(m1);m.push_back(m2);// m// 1.1 2.2 3.3 4.4 5.5// 1.2 2.3 3.4 4.5 5.6
总结

以上是内存溢出为你收集整理的c – 如何在OpenCV中创建空Mat?全部内容,希望文章能够帮你解决c – 如何在OpenCV中创建空Mat?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1257584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存