【问题标题】:Difference of OpenCV Mat typesOpenCV Mat 类型的区别
【发布时间】:2013-10-08 13:24:35
【问题描述】:

OpenCV cv::Mat 类型之间有什么区别?

更具体地说,CV_64FCV_64FC1CV_64FC2 有什么区别?当我创建一个具有double 值的cv::Mat 对象时,我应该使用哪一个?

【问题讨论】:

    标签: opencv


    【解决方案1】:

    Cx 部分显示图像中的通道数。即CV_64FC1类型的图像是简单的灰度图像,只有1个通道:

    image[i, j] = 0.5
    

    CV_64FC3 类型的图像是具有 3 个通道的彩色图像:

    image[i, j] = (0.5, 0.3, 0.7)
    

    (在 C++ 中,您可以将单个像素检查为 image.at<double>(i, j)

    CV_64FCV_64FC1 相同。因此,如果您只需要 2D 矩阵(即单通道),您可以使用 CV_64F


    编辑

    更一般地,Mat 对象的类型名称由几个部分组成。这是CV_64FC1 的示例:

    • CV_ - 这只是一个前缀
    • 64 - 每个基本矩阵元素的位数(例如,灰度图像中的像素值或 BGR 图像中的单一颜色元素)
    • F - 基本元素的类型。在这种情况下,F 表示浮点数,但也可以是 S(已签名)或 U(未签名)
    • Cx - 我之前概述的图像中的通道数

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多