OpenCV cv::Mat
类型之间有什么区别?
更具体地说,CV_64F
和CV_64FC1
或CV_64FC2
之间有什么区别?当我创建一个cv::Mat
个值为double
的对象时,我应该使用哪一个?
答案 0 :(得分:27)
Cx
部分在图片中显示频道数。也就是说,CV_64FC1
类型的图像是简单的灰度图像,只有1个通道:
image[i, j] = 0.5
虽然CV_64F3
类型的图像是带有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
- 我之前概述的图片中的频道数