在我之前使用的opencv2.4.10中,可以像下面这样完成从CvMat*到cv::Mat的转换。
CvMat *src = ...;
cv::Mat dst;
dst = cv::Mat(src);然而,在opencv3.0中,rc1不能这样转换。在某些网站中,这种转换可以如下所示。
CvMat* src = ...;
cv::Mat dst;
dst = cv::Mat(src->rows, src->cols, src->type, src->data.*);如果src的类型是'float',那么最后一个参数是'src->data.fl‘。
为什么cv::Mat的构造函数会减少?或者有什么方法可以将CvMat*转换成cv::Mat?
发布于 2016-01-05 22:41:24
CvMat* matrix;
Mat M0 = cvarrToMat(matrix);OpenCV提供了此功能,而不是Mat(矩阵)。
注意:在OpenCV 3.0中,他们将所有将旧式结构(cvmat,IPLImage)转换为新型结构的构造函数封装到此函数中。
发布于 2015-06-16 14:40:14
为了将CvMat*转换为Mat,您必须这样做:
cv::Mat dst(src->rows, src->cols, CV_64FC1, src->data.fl);https://stackoverflow.com/questions/30430551
复制相似问题