25 #include <fvutils/color/colorspaces.h> 36 colorspace_by_name(
const char *mode)
39 if (strcmp(mode,
"RGB") == 0) {
41 }
else if (strcmp(mode,
"YUV411_PACKED") == 0) {
43 }
else if (strcmp(mode,
"YUV411_PLANAR") == 0) {
45 }
else if (strcmp(mode,
"YUV420_PLANAR") == 0) {
47 }
else if (strcmp(mode,
"YUY2") == 0) {
49 }
else if (strcmp(mode,
"YVY2") == 0) {
51 }
else if (strcmp(mode,
"RGB_PLANAR") == 0) {
53 }
else if (strcmp(mode,
"BGR") == 0) {
55 }
else if (strcmp(mode,
"YUV422_PACKED") == 0) {
57 }
else if (strcmp(mode,
"YUV444_PACKED") == 0) {
59 }
else if (strcmp(mode,
"YVU444_PACKED") == 0) {
61 }
else if (strcmp(mode,
"YUV422_PLANAR") == 0) {
63 }
else if (strcmp(mode,
"YUV422_PLANAR_QUARTER") == 0) {
64 return YUV422_PLANAR_QUARTER;
65 }
else if (strcmp(mode,
"GRAY8") == 0) {
67 }
else if (strcmp(mode,
"RGB_WITH_ALPHA") == 0) {
68 return RGB_WITH_ALPHA;
69 }
else if (strcmp(mode,
"BGR_WITH_ALPHA") == 0) {
70 return BGR_WITH_ALPHA;
71 }
else if (strcmp(mode,
"BAYER_MOSAIC_RGGB") == 0) {
72 return BAYER_MOSAIC_RGGB;
73 }
else if (strcmp(mode,
"BAYER_MOSAIC_GBRG") == 0) {
74 return BAYER_MOSAIC_GBRG;
75 }
else if (strcmp(mode,
"BAYER_MOSAIC_GRBG") == 0) {
76 return BAYER_MOSAIC_GRBG;
77 }
else if (strcmp(mode,
"BAYER_MOSAIC_BGGR") == 0) {
78 return BAYER_MOSAIC_BGGR;
79 }
else if (strcmp(mode,
"RAW16") == 0) {
81 }
else if (strcmp(mode,
"CARTESIAN_3D_FLOAT") == 0) {
82 return CARTESIAN_3D_FLOAT;
83 }
else if (strcmp(mode,
"CARTESIAN_3D_DOUBLE") == 0) {
84 return CARTESIAN_3D_DOUBLE;
85 }
else if (strcmp(mode,
"CARTESIAN_3D_FLOAT_RGB") == 0) {
86 return CARTESIAN_3D_FLOAT_RGB;
94 colorspace_to_string(colorspace_t colorspace)
100 return "YUV411_PACKED";
102 return "YUV411_PLANAR";
104 return "YUV420_PLANAR";
112 return "YUV422_PACKED";
114 return "YUV444_PACKED";
116 return "YVU444_PACKED";
118 return "YUV422_PLANAR";
119 case YUV422_PLANAR_QUARTER:
120 return "YUV422_PLANAR_QUARTER";
126 return "RGB_WITH_ALPHA";
128 return "BGR_WITH_ALPHA";
129 case BAYER_MOSAIC_RGGB:
130 return "BAYER_MOSAIC_RGGB";
131 case BAYER_MOSAIC_GBRG:
132 return "BAYER_MOSAIC_GBRG";
133 case BAYER_MOSAIC_GRBG:
134 return "BAYER_MOSAIC_GRBG";
135 case BAYER_MOSAIC_BGGR:
136 return "BAYER_MOSAIC_BGGR";
139 case CARTESIAN_3D_FLOAT:
140 return "CARTESIAN_3D_FLOAT";
141 case CARTESIAN_3D_DOUBLE:
142 return "CARTESIAN_3D_DOUBLE";
143 case CARTESIAN_3D_FLOAT_RGB:
144 return "CARTESIAN_3D_FLOAT_RGB";
154 malloc_buffer(colorspace_t colorspace,
unsigned int width,
unsigned int height)
156 return (
unsigned char *)malloc(colorspace_buffer_size(colorspace, width, height));
160 colorspace_buffer_size(colorspace_t cspace,
unsigned int width,
unsigned int height)
168 return (width * height * 3);
172 return (width * height * 4);
177 return (width * height * 3 / 2);
183 return (width * height * 2);
187 return (width * height * 2);
192 case BAYER_MOSAIC_RGGB:
193 case BAYER_MOSAIC_GBRG:
194 case BAYER_MOSAIC_GRBG:
195 case BAYER_MOSAIC_BGGR:
196 return (width * height);
198 case YUV422_PLANAR_QUARTER:
199 return (width * height) / 2;
201 case CARTESIAN_3D_FLOAT:
202 return (3 * width * height *
sizeof(
float));
204 case CARTESIAN_3D_DOUBLE:
205 return (3 * width * height *
sizeof(
double));
207 case CARTESIAN_3D_FLOAT_RGB:
208 return (4 * width * height *
sizeof(
float));