ArcFace 2.0 API目前支持多种图像格式:BGR24、NV21、NV12、I420、YUYV(Android、IOS只支持其中的部分)。接下来将开始介绍这几种图像格式以及部分转换方式。
一、相关图像颜色空间介绍
1.RGB颜色空间
RGB颜色空间以Red、Green、Blue三种基本色为基础,进行不同程度的叠加,产生丰富而广泛的颜色,所以俗称三基色模式。
常见的RGB格式有:RGB_565、RGB_888、ARGB_8888、ARGB_4444等。
2.YUV颜色空间
在YUV颜色空间中,Y用来表示亮度,U和V用来表示色度。
常见的YUV格式有以下几大类:
planar: Y、U、V全部连续存储,如I420、YV12
packed: Y、U、V交叉存储,如YUYV
semi-planar: Y连续存储,U、V交叉存储,如NV21、NV12
二、相关图像格式介绍
1.BGR24图像格式
BGR24图像格式是一种采用24bpp(bit per pixel)的格式。每个颜色通道B、G、R各占8bpp。
排列方式如:
B G R B G R B G R B G R B G R B G R B G R B G R
B G R B G R B G R B G R B G R B G R B G R B G R
B G R B G R B G R B G R B G R B G R B G R B G R
B G R B G R B G R B G R B G R B G R B G R B G
2.NV21图像格式
NV21图像格式属于 YUV颜色空间中的YUV420SP格式,每四个Y分量共用一组U分量和V分量,Y连续排序,U与V交叉排序。
排列方式如:
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
V U V U V U V U
V U V U V U V U
3.NV12图像格式
NV12图像格式属于 YUV颜色空间中的YUV420SP格式,每四个Y分量共用一组U分量和V分量,Y连续排序,U与V交叉排序(NV12和NV21只是U与V的位置相反)。
排列方式如:
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
U V U V U V U V
U V U V U V U V
4.I420图像格式
I420图像格式属于 YUV颜色空间中的YUV420P格式,每四个Y分量共用一组U分量和V分量,Y、U、V各自连续排序。
排列方式如:
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
U U U U U U U U
V V V V V V V V
5.YV12图像格式
YV12图像格式属于 YUV颜色空间中的YUV420P格式,每四个Y分量共用一组U分量和V分量,Y、U、V各自连续排序(YV12和I420只是U与V的位置相反)。
排列方式如:
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
V V V V V V V V
U U U U U U U U
6.YUYV图像格式
YUYV图像格式属于 YUV颜色空间中的YUV422格式,每两个Y分量公用一组U分量和V分量,Y、U、V交叉排序。
排列方式如:
Y U Y V Y U Y V Y U Y V Y U Y V
Y U Y V Y U Y V Y U Y V Y U Y V
Y U Y V Y U Y V Y U Y V Y U Y V
Y U Y V Y U Y V Y U Y V Y U Y V
三、图像格式转换
由于图像的格式多种多样,转换的方法也不胜枚举,以下只列出部分的图像转换参考代码。
1.从Bitmap中获取ARGB_8888图像格式数据(Android平台)
Bitmap支持多种格式:ALPHA_8,RGB_565&