【发布时间】:2013-10-08 13:24:35
【问题描述】:
OpenCV cv::Mat 类型之间有什么区别?
更具体地说,CV_64F 和CV_64FC1 或CV_64FC2 有什么区别?当我创建一个具有double 值的cv::Mat 对象时,我应该使用哪一个?
【问题讨论】:
标签: opencv
OpenCV cv::Mat 类型之间有什么区别?
更具体地说,CV_64F 和CV_64FC1 或CV_64FC2 有什么区别?当我创建一个具有double 值的cv::Mat 对象时,我应该使用哪一个?
【问题讨论】:
标签: opencv
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_64F 与CV_64FC1 相同。因此,如果您只需要 2D 矩阵(即单通道),您可以使用 CV_64F
编辑
更一般地,Mat 对象的类型名称由几个部分组成。这是CV_64FC1 的示例:
CV_ - 这只是一个前缀64 - 每个基本矩阵元素的位数(例如,灰度图像中的像素值或 BGR 图像中的单一颜色元素)F - 基本元素的类型。在这种情况下,F 表示浮点数,但也可以是 S(已签名)或 U(未签名)Cx - 我之前概述的图像中的通道数【讨论】: