diff --git a/src/image.c b/src/image.c index 61f760a0..b6a0e994 100644 --- a/src/image.c +++ b/src/image.c @@ -37,6 +37,35 @@ float get_color(int c, int x, int max) return r; } +static float get_pixel(image m, int x, int y, int c) +{ + assert(x < m.w && y < m.h && c < m.c); + return m.data[c*m.h*m.w + y*m.w + x]; +} +static float get_pixel_extend(image m, int x, int y, int c) +{ + if (x < 0 || x >= m.w || y < 0 || y >= m.h) return 0; + /* + if(x < 0) x = 0; + if(x >= m.w) x = m.w-1; + if(y < 0) y = 0; + if(y >= m.h) y = m.h-1; + */ + if (c < 0 || c >= m.c) return 0; + return get_pixel(m, x, y, c); +} +static void set_pixel(image m, int x, int y, int c, float val) +{ + if (x < 0 || y < 0 || c < 0 || x >= m.w || y >= m.h || c >= m.c) return; + assert(x < m.w && y < m.h && c < m.c); + m.data[c*m.h*m.w + y*m.w + x] = val; +} +static void add_pixel(image m, int x, int y, int c, float val) +{ + assert(x < m.w && y < m.h && c < m.c); + m.data[c*m.h*m.w + y*m.w + x] += val; +} + void composite_image(image source, image dest, int dx, int dy) { int x,y,k; @@ -1641,32 +1670,6 @@ image get_image_layer(image m, int l) return out; } -float get_pixel(image m, int x, int y, int c) -{ - assert(x < m.w && y < m.h && c < m.c); - return m.data[c*m.h*m.w + y*m.w + x]; -} -float get_pixel_extend(image m, int x, int y, int c) -{ - if(x < 0) x = 0; - if(x >= m.w) x = m.w-1; - if(y < 0) y = 0; - if(y >= m.h) y = m.h-1; - if(c < 0 || c >= m.c) return 0; - return get_pixel(m, x, y, c); -} -void set_pixel(image m, int x, int y, int c, float val) -{ - if (x < 0 || y < 0 || c < 0 || x >= m.w || y >= m.h || c >= m.c) return; - assert(x < m.w && y < m.h && c < m.c); - m.data[c*m.h*m.w + y*m.w + x] = val; -} -void add_pixel(image m, int x, int y, int c, float val) -{ - assert(x < m.w && y < m.h && c < m.c); - m.data[c*m.h*m.w + y*m.w + x] += val; -} - void print_image(image m) { int i, j, k; diff --git a/src/image.h b/src/image.h index 24b86849..ebf28e8f 100644 --- a/src/image.h +++ b/src/image.h @@ -77,10 +77,10 @@ image load_image(char *filename, int w, int h, int c); YOLODLL_API image load_image_color(char *filename, int w, int h); image **load_alphabet(); -float get_pixel(image m, int x, int y, int c); -float get_pixel_extend(image m, int x, int y, int c); -void set_pixel(image m, int x, int y, int c, float val); -void add_pixel(image m, int x, int y, int c, float val); +//float get_pixel(image m, int x, int y, int c); +//float get_pixel_extend(image m, int x, int y, int c); +//void set_pixel(image m, int x, int y, int c, float val); +//void add_pixel(image m, int x, int y, int c, float val); float bilinear_interpolate(image im, float x, float y, int c); image get_image_layer(image m, int l);