OpenCV cv::Mat
类型有什么区别?
更具体地讲,之间有什么区别CV_64F
和CV_64FC1
或CV_64FC2
?当我创建一个cv::Mat
具有double
值的对象时,我应该使用哪一个?
ffr*_*end 28
Cx
part显示图像中的通道数.也就是说,类型的图像CV_64FC1
是简单的灰度图像,只有1个通道:
image[i, j] = 0.5
Run Code Online (Sandbox Code Playgroud)
而图像类型CV_64F3
是3通道的彩色图像:
image[i, j] = (0.5, 0.3, 0.7)
Run Code Online (Sandbox Code Playgroud)
(在C++中,你可以检查单个像素image.at<double>(i, j)
)
CV_64F
是一样的CV_64FC1
.因此,如果您只需要2D矩阵(即单通道),您可以使用CV_64F
编辑
更一般地说,Mat
对象的类型名称由几个部分组成.这是一个例子CV_64FC1
:
CV_
- 这只是一个前缀64
- 每个基本矩阵元素的位数(例如,灰度图像中的像素值或BGR图像中的单色元素)F
- 基本元素的类型.在这种情况下,它是F
浮动的,但也可以是S
(签名)或U
(无符号)Cx
- 如前所述,图像中的通道数