OpenCV Mat类型的区别

gun*_*yim 19 opencv

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

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

ffr*_*end 28

Cxpart显示图像中的通道数.也就是说,类型的图像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 - 如前所述,图像中的通道数