2

假设,我声明我的 CvMat* 如下所示,然后将其转换为 cv::Mat ,然后将类型从 转换CV_8UC1CV_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 APICV_8UC1进行转换吗?CV_32FC1

4

1 回答 1

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 );  
于 2013-07-19T13:24:27.693 回答