创建图像时CV_8UC1,CV_32FC3,CV_32S等参数的含义

创建图像时CV_8UC1,CV_32FC3,CV_32S等参数的含义

OpenCV库用于图像处理和计算机视觉,它用一种特定的方式来描述图像数据的类型。在OpenCV中,CV_{U|S|F}C是用来描述图像数据的类型的。

这种描述方式可以拆解为几个部分来理解:

  • CV_:这是所有类型的前缀,代表”Computer Vision”。
  • :这是一个数字,代表每一个通道的位深度。例如,8代表8位,32代表32位等。
  • {U|S|F}:这是一个字符,表示数据的类型。U代表无符号整型(unsigned),S代表有符号整型(signed),F代表浮点型(float)。
  • C:这表示图像的通道数。例如,C1表示单通道(例如灰度图),C3表示三通道(通常是BGR颜色图像)。

举几个例子:

  • CV_8UC1:这是8位无符号单通道图像,通常用于灰度图像。
  • CV_32FC3:这是32位浮点三通道图像,通常用于彩色图像。
  • CV_32S:这是32位有符号的图像,通道数没有明确指定,可能会根据上下文来决定。

imshow函数在显示图像时,会将各种类型的数据都映射到[0, 255]。

如下:

  • 如果载入的图像是8位无符号类型(8-bit unsigned),就显示图像本来的样子。

  • 如果图像是16位无符号类型(16-bit unsigned)或32位整型(32-bit integer,有符号位),便用像素值除以256。也就是说,值的范围是 [0,255 x 256]映射到[0,255]。

  • 如果图像是32位或64位浮点型(32-bit floating-point or 64-bit floating-point),像素值便要乘以255。也就是说,该值的范围是 [0,1]映射到[0,255]。


创建图像时CV_8UC1,CV_32FC3,CV_32S等参数的含义
https://qiangsun89.github.io/2023/05/22/创建图像时CV-8UC1,CV-32FC3,CV-32S等参数的含义/
作者
Qiang Sun
发布于
2023年5月22日
许可协议