преобразование 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 ответ:
Вы можете преобразовать 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 );