标签: opencv
我有a类型的矩阵CV_32FC2。
a
CV_32FC2
我尝试将其转换为类型为b的新矩阵CV_32FC1,但似乎矩阵b也获得CV_32FC2。
b
CV_32FC1
代码示例和输出:
cv::Mat b; a.convertTo(b, CV_32FC1); std::cout << a.type() << " " << b.type() << std::endl;
产生输出:
13 13
我希望b的类型更改为5,这是CV_32FC1
5
答案 0 :(得分:6)
给定A类型的矩阵CV_32FC2,又名Mat2f:
A
Mat2f
Mat2f A(3,2); randu(A, Scalar(0, 0), Scalar(1,1));
您可以使用reshape获得B类型的单个矩阵CV_32FC1,又名Mat1f:
B
Mat1f
Mat1f B = A.reshape(1);
使用split的两个矩阵CV_32FC1(正如@Micka在评论中所建议的那样):
vector<Mat1f> CC; split(A, CC);
其中CC[0]是:
CC[0]
和CC[1]是:
CC[1]