繁体   English   中英

在 OpenCV 中将 uchar Mat 转换为 float Mat?

[英]Convert uchar Mat to float Mat in OpenCV?

在 OpenCV 中,如果我有一个包含 uchar 数据的 Mat img,如何将数据转换为浮点数? 是否有 function 可用? 谢谢你。

如果您的意思是 c++ 那么您有

#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 中的详细信息。

更新:

CV_32FC1 用于 1 通道(C1,即灰度图像)浮点值 (32F) 像素

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

更新 2:
根据 Arthur Tacca 的说法,只有CV_32F是正确的(或者可能是 CV_8U),因为 convertTo 不应该改变通道数。 听起来合乎逻辑吧? 尽管如此,当我查看 opencv 参考手册时,我找不到任何关于此的信息,但我同意他的看法。

使用cvConvert function。 在 Python 中:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM