我正在测试OpenCV矩阵和显示功能,并有这个bug。我花了半天多的时间来透露它:
我最初试图显示OpenCV矩阵,而不管matric的类型如何CvMat或Mat,...... 使用我的另一篇文章中的Vasile先生推荐的展示方法Multi channel Mat display function
显示方法只是将矩阵的所有数据提取到cout流
这是我的计划:
// First: CV_32FC3 works OK
float objpts[12] = {0, 105, 105, 0, 0, 0, 105, 105, 0, 0, 0, 0};
CvMat objptsmat = cvMat( 1, 4, CV_32FC3, objpts);
CvMat* objectPoints = &objptsmat;
CvMatShow(objectPoints);
getchar();
输出:
// Second: CV_64FC3 crashes
float objpts[12] = {0, 105, 105, 0, 0, 0, 105, 105, 0, 0, 0, 0};
CvMat objptsmat = cvMat( 1, 4, CV_64FC3, objpts);
CvMat* objectPoints = &objptsmat;
CvMatShow(objectPoints);
getchar();
输出:
他们应该是一样的。右?? !!答案 0 :(得分:6)
在第二个示例中,您应该将数组声明为
double objpts[12] = {0, 105, 105, 0, 0, 0, 105, 105, 0, 0, 0, 0};
您可以将CV_xxtCn
视为