我有一个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
给定一个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在评论中所建议的那样):
vectorCC; split(A, CC);
在哪里CC[0]
:
并CC[1]
是: