假设,我声明我的 CvMat* 如下所示,然后将其转换为 cv::Mat,然后将类型从 CV_8UC1
转换为 CV_32FC1
。然后在转换后,我想将其恢复为 CVMat*。有人可以告诉我如何从 cv::Mat 到 CvMat* 的转换吗?
CvMat* r1 = cvLoadImageM(argv[2], 0);
cv::Mat r1cpp(r1);
r1.convertTo(r1, CV_32FC1, 1.0/255.0);
或者有人知道如何使用 C API 将 CV_8UC1
转换为 CV_32FC1
吗?
最佳答案
您可以使用 cvConvertScale((src), (dst), 1, 0 )
通过 C API 将 CV_8UC1 转换为 CV_32FC1命令如下
// source image
CvMat* src = cvLoadImageM(argv[2], 0);
// allocate destination image of type CV_32F
CvMat* dst = cvCreateMat(src->height, src->width, CV_32FC1)
// convert src image to dst image (type CV_32F)
cvConvertScale(src, dst, 1, 0 );
关于c++ - 在 OpenCV 中将 cv::Mat 转换为 Cvmat*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17746640/