1 
2 #ifndef HAAS_UAI_IMG_PROC_H
3 #define HAAS_UAI_IMG_PROC_H
4 #include "stdio.h"
5 #include "uai_odla.h"
6 #include "uai_load.h"
7 #include "uai_quant.h"
8 #include "uai_image.h"
9 #include "aos/kernel.h"
10 
11 #define RGB565_TO_R(pixel)  ((pixel & 0x1f) << 3)
12 #define RGB565_TO_G(pixel)  ((pixel & 0x7e0) >> 3)
13 #define RGB565_TO_B(pixel)  ((pixel & 0xf800) >> 8)
14 
uai_get_split_img_data(uint8_t * ori_img_data,uint32_t ori_img_width,uint32_t ori_img_height,uint8_t * img_data,int img_width,int img_height,int start_x,int start_y)15 void uai_get_split_img_data(uint8_t *ori_img_data, uint32_t ori_img_width, uint32_t ori_img_height, uint8_t *img_data, int img_width, int img_height, int start_x, int start_y)
16 {
17 	uint8_t *temp_data;
18 
19 	uai_img_data_t ori_img;
20 	ori_img.rows   = ori_img_height;
21 	ori_img.colums = ori_img_width;
22 	ori_img.format = UAI_RGB565;
23 	ori_img.data   = ori_img_data;
24 
25 	uai_img_data_t new_img;
26 	new_img.rows   = img_height;
27 	new_img.colums = img_width;
28 	new_img.format = UAI_RGB565;
29 	new_img.data   = img_data;
30 
31 	uai_image_split(&ori_img, &new_img, start_x, start_y);
32 }
33 
uai_get_resize_img(uint8_t * img_data,int img_width,int img_height,uint8_t * resized_img,int resize_width,int resize_height)34 void uai_get_resize_img(uint8_t *img_data, int img_width, int img_height, uint8_t *resized_img, int resize_width, int resize_height)
35 {
36     uai_img_data_t new_img;
37 	new_img.rows   = img_height;
38 	new_img.colums = img_width;
39 	new_img.format = UAI_GRAY;
40 	new_img.data   = img_data;
41 
42     uai_img_data_t resize_img;
43 	resize_img.rows   = resize_height;
44 	resize_img.colums = resize_width;
45 	resize_img.format = UAI_GRAY;
46 	resize_img.data   = resized_img;
47 
48 	uai_img_resize(&new_img, &resize_img, UAI_IMG_INTER_BILINEAR);
49 }
50 
uai_convert_img(uint8_t * ori_img_data,int img_width,int img_height,uint8_t * new_img_data)51 void uai_convert_img(uint8_t *ori_img_data, int img_width, int img_height, uint8_t *new_img_data)
52 {
53     uai_img_data_t old_img;
54 	old_img.rows   = img_height;
55 	old_img.colums = img_width;
56 	old_img.format = UAI_RGB565;
57 	old_img.data   = ori_img_data;
58 
59     uai_img_data_t new_img;
60 	new_img.rows   = img_height;
61 	new_img.colums = img_width;
62 	new_img.format = UAI_RGB888;
63 	new_img.data   = new_img_data;
64 
65 	uai_image_convert_ram(&old_img, &new_img);
66 }
67 
uai_get_gray_img(uint8_t * ori_img_data,int img_width,int img_height,uint8_t * new_img_data)68 void uai_get_gray_img(uint8_t *ori_img_data, int img_width, int img_height, uint8_t *new_img_data)
69 {
70 	uai_img_data_t old_img;
71 	old_img.rows = img_height;
72 	old_img.colums = img_width;
73 	old_img.format = UAI_RGB565;
74 	old_img.data = ori_img_data;
75 
76 	uai_img_data_t new_img;
77 	new_img.rows = img_height;
78 	new_img.colums = img_width;
79 	new_img.format = UAI_GRAY;
80 	new_img.data = new_img_data;
81 
82 	uai_image_gray(&old_img, &new_img);
83 }
84 #endif
85