В OpenCV, если у меня есть Mat img, который содержит данные uchar, как мне преобразовать данные в float? Доступна ли функция? Спасибо.
Преобразовать uchar Mat в float Mat в OpenCV?
Ответ 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)