在OpenCV中将cv :: Mat转换为Cvmat *

时间:2013-07-19 12:56:54

标签: c++ c opencv image-processing

假设我正在声明我的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

1 个答案:

答案 0 :(得分:3)

您可以使用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 );