我需要从输入灰度图像中获取一维矢量,以便计算协方差矩阵。所以我试图将IplImage转换为CvMat然后重塑它。
我第一次使用以下代码:
CvMat *image_matrix = cvCreateMat(image->width, image->height, CV_32FC1);
cvConvert(image, image_matrix);
CvMat iv_p, *image_vector = cvCreateMat(image->widht * image->height, 1, CV_32FC1);
image_vector = cvReshape(image_matrix, &iv_p, 1, image->widht * image->height);
但它给了我
断言失败(src.size == dst.size&& src.channels<> == dst.channels<>在cvConvertScale中)
所以我在这里找到另一种方式:
CvMat i_p, *image_matrix;
image_matrix = cvGetMat(image, &i_p, 0, 0);
CvMat iv_p, *image_vector = cvCreateMat(image->widht * image->height, 1, CV_32FC1);
image_vector = cvReshape(image_matrix, &iv_p, 1, image->widht * image->height);
但是这次我得到了
图像步骤错误(矩阵不连续,因此无法更改行数>在cvReshape中。
有人可以建议解决我的问题吗?