【问题标题】:opencv convertTo not workingopencv convertTo 不工作
【发布时间】:2015-06-17 21:40:34
【问题描述】:

我知道其他人已经提出并回答了这个问题。但我仍然无法解决我的问题。我从视频中读取了一帧,其格式为 unsigned char (CV_8U)。我希望将其转换为双精度(CV_64F)。我这样做:

VideoCapture capture(fileName);
Mat image;
capture >> image;
cvtColor(image, image, CV_BGR2GRAY);
image.convertTo(image, CV_32FC1, 1.0/255);
cout << typeid(image.data[0]).name() << endl;

但结果显示图像仍然是无符号字符。我的代码有什么问题?谢谢。

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    这不是测试类型转换的正确方法。

    OpenCV 在cv::Mat 中的data 变量始终是uchar 类型。基本上是指向内存的指针,但不代表数据是uchar

    要获取图像数据的类型,请使用type() 函数。这是一个测试类型是否成功转换为float(将是)的示例

    cv::DataType<float>::type == image.type();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      • 2015-09-12
      • 2018-04-21
      • 2013-04-16
      • 1970-01-01
      • 2015-10-07
      • 2015-06-06
      相关资源
      最近更新 更多