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