преобразование cv:: Mat в Cvmat* в OpenCV


Предположим, я объявляю свой CvMat* , как показано ниже, а затем преобразую его в cv::Mat, а затем выполняю преобразование типов из CV_8UC1 в CV_32FC1. Затем, после преобразования, я хочу вернуть его обратно в CVMat*. Может ли anbody сказать мне, как я могу сделать преобразование из cv:: Mat в CvMat* ?

     CvMat* r1 = cvLoadImageM(argv[2], 0);
     cv::Mat r1cpp(r1);
     r1.convertTo(r1, CV_32FC1, 1.0/255.0);

Или кто-нибудь знает, как я могу сделать преобразование CV_8UC1 в CV_32FC1 с помощью C API?

1 2

1 ответ:

Вы можете преобразовать CV_8UC1 в CV_32FC1 с помощью C API, используя cvConvertScale((src), (dst), 1, 0 ) команда следующая

// 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 );