目录
1 简介
随着人工智能的发展,深度神经网络在视觉领域“百花齐放”,为了满足不同场景的需求,我们会接触到多种图像数据格式,本文将为大家详细地介绍深度学习场景中常用的图像数据格式:RGB、BGR、YUV(YUV444、NV12)、Gray。
2 RGB
RGB是一种常见的彩色图像格式,图像的每一个像素点都会存储红(Red)、绿(Green)、蓝(Blue) 三个颜色通道的亮度值( 0 ~ 255,UINT8 )。基于此,如果按(R,G,B)的方式记录,那么(255,0,0)、(0,255,0)、(0,0,255)可以分别表示最纯粹的 红、绿、蓝,效果如下图所示。特殊地,若 RGB 三个通道的数值均为 0,综合得到黑色;若三个通道的数值均取最大值 255,综合得到白色。
RGB 可表示的色彩数量可达256x256x256≈1677 万,远超人眼的感知范围(约 1000 万种),因此,RGB 被广泛应用于各种显示领域,与大家的日常生活息息相关。
然而,RGB 在表示颜色时有一个特点,每个像素点必须同时存储 R、G、B 三个通道数值,即每个像素点需要3个字节的存储空间,针对视频场景的存储与传输是非常不友好的,会占用大量的空间和带宽。
3 BGR
BGR图像格式与RGB类似,只是红、绿、蓝三个通道的排列顺序不同。在BGR格式中,像素点的通道顺序是蓝、绿、红,在RGB格式中,像素点的通道顺序是红、绿、蓝。
BGR格式常用于OpenCV等计算机视觉库中,是一些软件和硬件的默认图像格式,与这些软件和硬件的兼容性更好。
BGR与RGB一样,数据量较大,不适合视频场景的存储与传输。因此,我们还需要其他的图像格式,用来替代 RGB/BGR 用于视频领域,此时,YUV闪亮登场。
4 YUV
YUV是一种彩色图像格式,其中Y表示亮度(Luminance),