From e4ead239beb2a4cae77d840b0b90cd92f33b38ed Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Tue, 5 Mar 2019 16:26:57 +0200 Subject: [PATCH] Add ironbow table. --- src/omv/img/imlib.h | 9 +++++++++ src/omv/img/rainbow_tab.c | 34 ++++++++++++++++++++++++++++++++++ src/omv/py/py_image.c | 2 -- 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/omv/img/imlib.h b/src/omv/img/imlib.h index e8d5efb61..e46fadac0 100644 --- a/src/omv/img/imlib.h +++ b/src/omv/img/imlib.h @@ -346,6 +346,15 @@ extern const int8_t yuv_table[196608]; #define COLOR_GRAYSCALE_TO_BINARY(pixel) ((pixel) > (((COLOR_GRAYSCALE_MAX - COLOR_GRAYSCALE_MIN) / 2) + COLOR_GRAYSCALE_MIN)) #define COLOR_GRAYSCALE_TO_RGB565(pixel) COLOR_YUV_TO_RGB565((pixel) - 128, 0, 0) +typedef enum { + COLOR_PALETTE_RAINBOW, + COLOR_PALETTE_IRONBOW +} color_palette_t; + +// Color palette LUTs +extern const uint16_t rainbow_table[256]; +extern const uint16_t ironbow_table[256]; + ///////////////// // Image Stuff // ///////////////// diff --git a/src/omv/img/rainbow_tab.c b/src/omv/img/rainbow_tab.c index addcce25e..3c1e3ba6c 100644 --- a/src/omv/img/rainbow_tab.c +++ b/src/omv/img/rainbow_tab.c @@ -33,3 +33,37 @@ const uint16_t rainbow_table[256] = { 0xA0F9, 0x80F9, 0x60F9, 0x40F9, 0x40F9, 0x20F9, 0x00F9, 0xE0F8, 0xC0F8, 0xC0F8, 0xA0F8, 0x80F8, 0x60F8, 0x40F8, 0x40F8, 0x20F8 }; +const uint16_t ironbow_table[256] = { + 0xFFFF, 0xFFFF, 0xDFFF, 0xDEF7, 0xBEF7, 0xBEF7, 0x9EF7, 0x9DEF, + 0x7DEF, 0x7DEF, 0x5DEF, 0x5CE7, 0x3CE7, 0x3CE7, 0x1CE7, 0x1BDF, + 0xFBDE, 0xFBDE, 0xDBDE, 0xDAD6, 0xBAD6, 0xBAD6, 0x9AD6, 0x99CE, + 0x79CE, 0x79CE, 0x59CE, 0x58C6, 0x38C6, 0x38C6, 0x18C6, 0x17BE, + 0xF7BD, 0xF7BD, 0xD7BD, 0xD6B5, 0xB6B5, 0xB6B5, 0x96B5, 0x96B5, + 0x75AD, 0x75AD, 0x55AD, 0x55AD, 0x34A5, 0x34A5, 0x14A5, 0x14A5, + 0xF39C, 0xF39C, 0xD39C, 0xD39C, 0xB294, 0xB294, 0x9294, 0x9294, + 0x718C, 0x718C, 0x518C, 0x518C, 0x3084, 0x3084, 0x1084, 0x1084, + 0xEF7B, 0xEF7B, 0xCF7B, 0xCF7B, 0xAE73, 0xAE73, 0x8E73, 0x8E73, + 0x6D6B, 0x6D6B, 0x4D6B, 0x4D6B, 0x2C63, 0x2C63, 0x0C63, 0x0C63, + 0xEB5A, 0xEB5A, 0xCB5A, 0xCB5A, 0xAA52, 0xAA52, 0x8A52, 0x8A52, + 0x694A, 0x694A, 0x494A, 0x494A, 0x294A, 0x2842, 0x0842, 0x0842, + 0xE841, 0xE739, 0xC739, 0xC739, 0xA739, 0xA631, 0x8631, 0x8631, + 0x6631, 0x6529, 0x4529, 0x4529, 0x2529, 0x2421, 0x0421, 0x0421, + 0xE420, 0xE318, 0xC318, 0xC318, 0xA318, 0xA210, 0x8210, 0x8210, + 0x6210, 0x6108, 0x4108, 0x4108, 0x2108, 0x2000, 0x0000, 0x0000, + 0x0100, 0x0200, 0x0300, 0x0408, 0x0508, 0x0508, 0x0608, 0x0710, + 0x0810, 0x0910, 0x0A18, 0x0B18, 0x0C18, 0x0D18, 0x0D20, 0x0E20, + 0x0F20, 0x0F28, 0x0F30, 0x0F30, 0x0F38, 0x0F38, 0x0F40, 0x0F48, + 0x1048, 0x1050, 0x1050, 0x1058, 0x1060, 0x1060, 0x1068, 0x1068, + 0x1170, 0x1178, 0x1178, 0x1180, 0x3180, 0x3188, 0x3190, 0x3190, + 0x3198, 0x3198, 0x31A0, 0x31A0, 0x31A8, 0x31B0, 0x51B0, 0x51B8, + 0x51B8, 0x70B8, 0x8FC0, 0xAFC0, 0xAEC0, 0xCDC0, 0xEDC8, 0x0CC9, + 0x0CC9, 0x2BC9, 0x4AD1, 0x6AD1, 0x69D1, 0x88D9, 0xA8D9, 0xC7D9, + 0xC6D9, 0xE6D9, 0x05DA, 0x25E2, 0x45E2, 0x44E2, 0x64E2, 0x84E2, + 0xA4E2, 0xC3E2, 0xE3E2, 0xE3E2, 0x02EB, 0x22EB, 0x42EB, 0x61EB, + 0x81EB, 0xA1EB, 0xA1EB, 0xC1EB, 0xE1EB, 0x01EC, 0x21EC, 0x41F4, + 0x62F4, 0x82F4, 0xA2F4, 0xC2F4, 0xE2F4, 0x02F5, 0x02F5, 0x22F5, + 0x42F5, 0x62F5, 0x82F5, 0xA2F5, 0xC2F5, 0xE2F5, 0xE2F5, 0x03FE, + 0x23FE, 0x43FE, 0x63FE, 0x83FE, 0xA3FE, 0xC3FE, 0xC4FE, 0xE4FE, + 0x05FF, 0x26FF, 0x28FF, 0x4AFF, 0x4CFF, 0x4DFF, 0x6FFF, 0x71FF, + 0x92FF, 0x94FF, 0xB6FF, 0xB7FF, 0xD9FF, 0xDBFF, 0xFDFF, 0xE3FF +}; diff --git a/src/omv/py/py_image.c b/src/omv/py/py_image.c index defbb5b47..c6058ac5d 100644 --- a/src/omv/py/py_image.c +++ b/src/omv/py/py_image.c @@ -1091,8 +1091,6 @@ static mp_obj_t py_image_to_rgb565(uint n_args, const mp_obj_t *args, mp_map_t * } STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_image_to_rgb565_obj, 1, py_image_to_rgb565); -extern const uint16_t rainbow_table[256]; - static mp_obj_t py_image_to_rainbow(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) { image_t *arg_img = py_helper_arg_to_image_mutable(args[0]);