假设我正在声明我的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
?
答案 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 );