[英]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.