将uchar Mat转换为OpenCV中的Mat?

问题描述:

在OpenCV中,如果我有一个包含uchar数据的mat img,我该如何将数据转换为浮点数?有没有可用的功能?谢谢。将uchar Mat转换为OpenCV中的Mat?

使用cvConvert功能。在Python:

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

如果你的意思是C++,那么你必须在opencv2refman.pdf

#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) 

细节。

UPDATE:

CV_32FC1为值1通道(C1,即灰度图像)漂浮(32F)像素

CV_8UC1为1通道(C1,即灰度图像)无符号字符(8UC)价值的。

+0

你能告诉我我们需要使用'32F'还是'8U' – AHF 2014-03-31 11:45:58

+0

@Ahmad请参阅更新。 – 2014-03-31 12:45:24

+0

这实际上是我的问题,为什么我们需要使用浮点值像素以及我们需要使用char值的像素 – AHF 2014-03-31 12:56:33