Подтвердить что ты не робот

Преобразовать uchar Mat в float Mat в OpenCV?

В OpenCV, если у меня есть Mat img, который содержит данные uchar, как мне преобразовать данные в float? Доступна ли функция? Спасибо.

4b9b3361

Ответ 1

Если вы имели в виду С++, то у вас есть

#include<opencv2/opencv.hpp>
using namespace cv;
Mat img;
img.create(2,2,CV_8UC1);
Mat img2;
img.convertTo(img2, CV_32FC1); // or CV_32F works (too)

подробности в opencv2refman.pdf.

UPDATE:

CV_32FC1 для одноканального (C1, то есть серого изображения) с плавающей точкой (32F) пикселей

CV_8UC1 предназначен для 1-канального (C1, то есть серого изображения) значений без знака char (8UC).

Ответ 2

Используйте функцию cvConvert. В Python:

import cv
m = cv.CreateMat(2, 2, cv.CV_8UC1)
m1 = cv.CreateMat(2, 2, cv.CV_32FC1)
cv.Convert(m, m1)