当前位置:  开发笔记 > 编程语言 > 正文

将"CV_32FC2"类型的矩阵转换为"CV_32FC1"类型

如何解决《将"CV_32FC2"类型的矩阵转换为"CV_32FC1"类型》经验,为你挑选了1个好方法。

我有一个a类型的矩阵CV_32FC2.

我试图将它转换为一个b带有类型的新矩阵CV_32FC1,但似乎矩阵b也得到了CV_32FC2.

代码示例和输出:

cv::Mat b;
a.convertTo(b, CV_32FC1);
std::cout << a.type() << " " << b.type() << std::endl;

产生输出:

13 13

我希望b改变的类型5,即枚举值CV_32FC1



1> Miki..:

给定一个A类型矩阵CV_32FC2,又名Mat2f:

Mat2f A(3,2);
randu(A, Scalar(0, 0), Scalar(1,1));

在此输入图像描述

您可以获得单个矩阵B类型CV_32FC1,也就是Mat1f使用重塑:

Mat1f B = A.reshape(1);

在此输入图像描述

或者CV_32FC1使用split的两个矩阵(正如@Micka在评论中所建议的那样):

vector CC;
split(A, CC);

在哪里CC[0]:

在此输入图像描述

CC[1]是:

在此输入图像描述

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有