首页 文章

转换uchar Mat在OpenCV中浮动Mat?

提问于
浏览
26

在OpenCV中,如果我有一个包含uchar数据的Mat img,我该如何将数据转换为float?有功能吗?谢谢 .

2 回答

  • 47

    如果你的意思是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中的详细信息 .

    UPDATE:

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

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

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

  • 9

    使用 cvConvert 功能 . 在Python中:

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

相关问题