|  | Paparazzi UAS v7.0_unstable
    Paparazzi is a free software Unmanned Aircraft System. | 
Image helper functions, like resizing, color filter, converters... More...
 Include dependency graph for image.c:
 Include dependency graph for image.c:Go to the source code of this file.
| Macros | |
| #define | CACHE_LINE_LENGTH 64 | 
| Functions | |
| void | image_create (struct image_t *img, uint16_t width, uint16_t height, enum image_type type) | 
| Create a new image. | |
| void | image_free (struct image_t *img) | 
| Free the image. | |
| void | image_copy (struct image_t *input, struct image_t *output) | 
| Copy an image from inut to output This will only work if the formats are the same. | |
| void | image_switch (struct image_t *a, struct image_t *b) | 
| This will switch image *a and *b This is faster as image_copy because it doesn't copy the whole image buffer. | |
| void | image_to_grayscale (struct image_t *input, struct image_t *output) | 
| Convert an image to grayscale. | |
| uint16_t | image_yuv422_colorfilt (struct image_t *input, struct image_t *output, uint8_t y_m, uint8_t y_M, uint8_t u_m, uint8_t u_M, uint8_t v_m, uint8_t v_M) | 
| Filter colors in an YUV422 image. | |
| int | check_color_yuv422 (struct image_t *im, int x, int y, uint8_t y_m, uint8_t y_M, uint8_t u_m, uint8_t u_M, uint8_t v_m, uint8_t v_M) | 
| Checks the color of a single pixel in a YUV422 image. | |
| void | set_color_yuv422 (struct image_t *im, int x, int y, uint8_t Y, uint8_t U, uint8_t V) | 
| Sets Y,U,V for a single pixel. | |
| void | image_yuv422_downsample (struct image_t *input, struct image_t *output, uint8_t downsample) | 
| Simplified high-speed low CPU downsample function without averaging downsample factor must be 1, 2, 4, 8 ... 2^X image of type UYVY expected. | |
| void | image_add_border (struct image_t *input, struct image_t *output, uint8_t border_size) | 
| This function adds padding to input image by mirroring the edge image elements. | |
| void | pyramid_next_level (struct image_t *input, struct image_t *output, uint8_t border_size) | 
| This function takes previous padded pyramid level and outputs next level of pyramid without padding. | |
| void | pyramid_build (struct image_t *input, struct image_t *output_array, uint8_t pyr_level, uint16_t border_size) | 
| This function populates given array of image_t structs with wanted number of padded pyramids based on given input. | |
| void | image_subpixel_window (struct image_t *input, struct image_t *output, struct point_t *center, uint32_t subpixel_factor, uint8_t border_size) | 
| This outputs a subpixel window image in grayscale Currently only works with Grayscale images as input but could be upgraded to also support YUV422 images. | |
| void | image_gradients (struct image_t *input, struct image_t *dx, struct image_t *dy) | 
| Calculate the gradients using the following matrix: [0 -1 0; -1 0 1; 0 1 0]. | |
| void | image_calculate_g (struct image_t *dx, struct image_t *dy, int32_t *g) | 
| Calculate the G vector of an image gradient This is used for optical flow calculation. | |
| uint32_t | image_difference (struct image_t *img_a, struct image_t *img_b, struct image_t *diff) | 
| Calculate the difference between two images and return the error This will only work with grayscale images. | |
| int32_t | image_multiply (struct image_t *img_a, struct image_t *img_b, struct image_t *mult) | 
| Calculate the multiplication between two images and return the error This will only work with image gradients. | |
| void | image_show_points (struct image_t *img, struct point_t *points, uint16_t points_cnt) | 
| Show points in an image by coloring them through giving the pixels the maximum value. | |
| void | image_show_points_color (struct image_t *img, struct point_t *points, uint16_t points_cnt, uint8_t *color) | 
| Show points in an image by coloring them through giving the pixels the maximum value. | |
| void | image_show_flow (struct image_t *img, struct flow_t *vectors, uint16_t points_cnt, uint8_t subpixel_factor) | 
| void | image_show_flow_color (struct image_t *img, struct flow_t *vectors, uint16_t points_cnt, uint8_t subpixel_factor, const uint8_t *color, const uint8_t *bad_color) | 
| Shows the flow from a specific point to a new point This works on YUV422 and Grayscale images. | |
| void | image_gradient_pixel (struct image_t *img, struct point_t *loc, int method, int *dx, int *dy) | 
| Get the gradient at a pixel location. | |
| void | image_draw_rectangle (struct image_t *img, int x_min, int x_max, int y_min, int y_max, uint8_t *color) | 
| Draw a rectangle on the image. | |
| void | image_draw_crosshair (struct image_t *img, struct point_t *loc, const uint8_t *color, uint32_t size_crosshair) | 
| Draw a cross-hair on the image. | |
| void | image_draw_line (struct image_t *img, struct point_t *from, struct point_t *to) | 
| Draw a pink line on the image. | |
| void | image_draw_line_color (struct image_t *img, struct point_t *from, struct point_t *to, const uint8_t *color) | 
| Draw a line on the image. | |
| uint8_t | ker_mul_3x3 (uint8_t const *source, int_fast8_t const *kernel, uint8_t total, uint8_t setting, int width, int YUV) | 
| Kernel multiplication for a 3 x 3 kernel. | |
| void | image_convolution_3x3 (struct image_t *input, struct image_t *output, int_fast8_t const *kernel, uint8_t kernel_total) | 
| Image convolution for a 3x3 kernel. | |
Image helper functions, like resizing, color filter, converters...
Definition in file image.c.
| int check_color_yuv422 | ( | struct image_t * | im, | 
| int | x, | ||
| int | y, | ||
| uint8_t | y_m, | ||
| uint8_t | y_M, | ||
| uint8_t | u_m, | ||
| uint8_t | u_M, | ||
| uint8_t | v_m, | ||
| uint8_t | v_M | ||
| ) | 
Checks the color of a single pixel in a YUV422 image.
1 means that it passes the filter, 0 that it does not.
| [in] | im | The input image to filter | 
| [in] | x | The x-coordinate of the pixel | 
| [in] | y | The y-coordinate of the pixel | 
| [in] | y_m | The Y minimum value | 
| [in] | y_M | The Y maximum value | 
| [in] | u_m | The U minimum value | 
| [in] | u_M | The U maximum value | 
| [in] | v_m | The V minimum value | 
| [in] | v_M | The V maximum value | 
Definition at line 237 of file image.c.
References image_t::buf, foo, image_t::h, and image_t::w.
Referenced by check_color_snake_gate_detection().
 Here is the caller graph for this function:
 Here is the caller graph for this function:This function adds padding to input image by mirroring the edge image elements.
| [in] | *input | - input image (grayscale only) | 
| [out] | *output | - the output image | 
| [in] | border_size | - amount of padding around image. Padding is made by reflecting image elements at the edge Example: f e d c b a | a b c d e f | f e d c b a | 
Definition at line 368 of file image.c.
References image_t::buf, foo, image_t::h, image_create(), image_t::type, and image_t::w.
Referenced by pyramid_build().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Calculate the G vector of an image gradient This is used for optical flow calculation.
| [in] | *dx | The gradient in the X direction | 
| [in] | *dy | The gradient in the Y direction | 
| [out] | *g | The G[4] vector devided by 255 to keep in range | 
Definition at line 573 of file image.c.
References image_t::buf, foo, g, image_t::h, and image_t::w.
Referenced by opticFlowLK(), and opticFlowLK_flat().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void image_convolution_3x3 | ( | struct image_t * | input, | 
| struct image_t * | output, | ||
| int_fast8_t const * | kernel, | ||
| uint8_t | kernel_total | ||
| ) | 
Image convolution for a 3x3 kernel.
| [in] | input | Input image | 
| [in,out] | output | Output image | 
| [in] | kernel | The kernel values | 
Definition at line 1068 of file image.c.
References image_t::buf, dest, image_t::eulers, foo, IMAGE_GRAYSCALE, IMAGE_YUV422, ker_mul_3x3(), image_t::pprz_ts, image_t::ts, point_t::x, and point_t::y.
 Here is the call graph for this function:
 Here is the call graph for this function:Copy an image from inut to output This will only work if the formats are the same.
| [in] | *input | The input image to copy from | 
| [out] | *output | The out image to copy to | 
Definition at line 89 of file image.c.
References image_t::buf, image_t::buf_size, image_t::eulers, foo, image_t::h, image_t::pprz_ts, image_t::ts, image_t::type, and image_t::w.
Referenced by calc_fast9_lukas_kanade(), copy_left_img_func(), copy_right_img_func(), cv_async_function(), and undistort_image_func().
 Here is the caller graph for this function:
 Here is the caller graph for this function:Create a new image.
| [out] | *img | The output image | 
| [in] | width | The width of the image | 
| [in] | height | The height of the image | 
| [in] | type | The type of image (YUV422 or grayscale) | 
Definition at line 43 of file image.c.
References CACHE_LINE_LENGTH, foo, IMAGE_GRADIENT, IMAGE_INT16, IMAGE_JPEG, and IMAGE_YUV422.
Referenced by calc_fast9_lukas_kanade(), cv_async_function(), cv_blob_locator_func(), cv_window_func(), detect_window(), image_add_border(), log_image(), opticFlowLK(), opticFlowLK_flat(), pano_unwrap_init(), pyramid_next_level(), qrscan(), set_output_image_size(), undistort_image_func(), video_capture_save(), video_thread_function(), viewvideo_function(), and wedgebug_init().
 Here is the caller graph for this function:
 Here is the caller graph for this function:Calculate the difference between two images and return the error This will only work with grayscale images.
| [in] | *img_a | The image to substract from | 
| [in] | *img_b | The image to substract from img_a | 
| [out] | *diff | The image difference (if not needed can be NULL) | 
Definition at line 605 of file image.c.
References foo.
Referenced by opticFlowLK(), and opticFlowLK_flat().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void image_draw_crosshair | ( | struct image_t * | img, | 
| struct point_t * | loc, | ||
| const uint8_t * | color, | ||
| uint32_t | size_crosshair | ||
| ) | 
Draw a cross-hair on the image.
| [in,out] | *img | The image to show the line on | 
| [in] | loc | The location of the cross-hair | 
| [in] | color | The line color as a [U, Y1, V, Y2] uint8_t array, or a uint8_t value pointer for grayscale images. Example colors: white = {127, 255, 127, 255}, green = {0, 127, 0, 127}; | 
| [in] | size_crosshair | Actually the half size of the cross hair | 
Definition at line 891 of file image.c.
References foo, image_draw_line_color(), point_t::x, and point_t::y.
Referenced by draw_gate_color_polygon(), draw_gate_color_square(), image_show_flow_color(), image_show_points_color(), and snake_gate_detection().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Draw a pink line on the image.
| [in,out] | *img | The image to show the line on | 
| [in] | *from | The point to draw from | 
| [in] | *to | The point to draw to | 
Definition at line 917 of file image.c.
References foo, and image_draw_line_color().
Referenced by draw_edgeflow_img(), and qrscan().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void image_draw_line_color | ( | struct image_t * | img, | 
| struct point_t * | from, | ||
| struct point_t * | to, | ||
| const uint8_t * | color | ||
| ) | 
Draw a line on the image.
| [in,out] | *img | The image to show the line on | 
| [in] | *from | The point to draw from | 
| [in] | *to | The point to draw to | 
| [in] | *color | The line color as a [U, Y1, V, Y2] uint8_t array, or a uint8_t value pointer for grayscale images. Example colors: white = {127, 255, 127, 255}, green = {0, 127, 0, 127}; | 
Definition at line 932 of file image.c.
References foo, IMAGE_YUV422, point_t::x, and point_t::y.
Referenced by draw_gate_color_polygon(), draw_gate_color_square(), image_draw_crosshair(), image_draw_line(), image_draw_rectangle(), and image_show_flow_color().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void image_draw_rectangle | ( | struct image_t * | img, | 
| int | x_min, | ||
| int | x_max, | ||
| int | y_min, | ||
| int | y_max, | ||
| uint8_t * | color | ||
| ) | 
Draw a rectangle on the image.
| [in,out] | *img | The image to show the line on | 
| [in] | x_min | start in x | 
| [in] | x_max | end of x | 
| [in] | y_min | start in y | 
| [in] | y_max | end of y | 
| [in] | color | in [U, Y, V, Y] format | 
Definition at line 849 of file image.c.
References foo, image_draw_line_color(), point_t::x, and point_t::y.
 Here is the call graph for this function:
 Here is the call graph for this function:Free the image.
| [in] | *img | The image to free | 
Definition at line 75 of file image.c.
References foo.
Referenced by cv_async_function(), cv_blob_locator_func(), cv_window_func(), detect_window(), opticFlowLK(), opticFlowLK_flat(), pyramid_build(), set_output_image_size(), undistort_image_func(), video_capture_save(), video_thread_function(), and viewvideo_function().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void image_gradient_pixel | ( | struct image_t * | img, | 
| struct point_t * | loc, | ||
| int | method, | ||
| int * | dx, | ||
| int * | dy | ||
| ) | 
Get the gradient at a pixel location.
| [in,out] | *img | The image | 
| [in] | loc | The location at which to get the gradient | 
| [in] | method | 0 = {-1, 0, 1}, 1 = Sobel {-1, 0, 1; -2, 0, 2; -1, 0, 1} | 
| [in] | dx | The gradient in x-direction | 
| [in] | dy | The gradient in y-direction | 
Definition at line 777 of file image.c.
References foo, IMAGE_YUV422, point_t::x, and point_t::y.
Referenced by act_fast().
 Here is the caller graph for this function:
 Here is the caller graph for this function:Calculate the gradients using the following matrix: [0 -1 0; -1 0 1; 0 1 0].
| [in] | *input | Input grayscale image | 
| [out] | *dx | Output gradient in the X direction (dx->w = input->w-2, dx->h = input->h-2) | 
| [out] | *dy | Output gradient in the Y direction (dx->w = input->w-2, dx->h = input->h-2) | 
Definition at line 549 of file image.c.
References image_t::buf, foo, image_t::h, and image_t::w.
Referenced by opticFlowLK(), and opticFlowLK_flat().
 Here is the caller graph for this function:
 Here is the caller graph for this function:Calculate the multiplication between two images and return the error This will only work with image gradients.
| [in] | *img_a | The image to multiply | 
| [in] | *img_b | The image to multiply with | 
| [out] | *mult | The image multiplication (if not needed can be NULL) | 
Definition at line 643 of file image.c.
References foo.
Referenced by opticFlowLK(), and opticFlowLK_flat().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void image_show_flow | ( | struct image_t * | img, | 
| struct flow_t * | vectors, | ||
| uint16_t | points_cnt, | ||
| uint8_t | subpixel_factor | ||
| ) | 
Definition at line 726 of file image.c.
References foo, and image_show_flow_color().
 Here is the call graph for this function:
 Here is the call graph for this function:| void image_show_flow_color | ( | struct image_t * | img, | 
| struct flow_t * | vectors, | ||
| uint16_t | points_cnt, | ||
| uint8_t | subpixel_factor, | ||
| const uint8_t * | color, | ||
| const uint8_t * | bad_color | ||
| ) | 
Shows the flow from a specific point to a new point This works on YUV422 and Grayscale images.
| [in,out] | *img | The image to show the flow on | 
| [in] | *vectors | The flow vectors to show | 
| [in] | *points_cnt | The amount of points and vectors to show | 
| [in] | subpixel_factor | |
| [in] | color | color for good vectors | 
| [in] | bad_color | color for bad vectors | 
Definition at line 743 of file image.c.
References foo, image_draw_crosshair(), image_draw_line_color(), LARGE_FLOW_ERROR, point_t::x, and point_t::y.
Referenced by calc_fast9_lukas_kanade(), and image_show_flow().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Show points in an image by coloring them through giving the pixels the maximum value.
This works with YUV422 and grayscale images
| [in,out] | *img | The image to place the points on | 
| [in] | *points | The points to sohw | 
| [in] | *points_cnt | The amount of points to show | 
Definition at line 679 of file image.c.
References foo, and image_show_points_color().
Referenced by calc_fast9_lukas_kanade().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void image_show_points_color | ( | struct image_t * | img, | 
| struct point_t * | points, | ||
| uint16_t | points_cnt, | ||
| uint8_t * | color | ||
| ) | 
Show points in an image by coloring them through giving the pixels the maximum value.
This works with YUV422 and grayscale images
| [in,out] | *img | The image to place the points on | 
| [in] | *points | The points to show | 
| [in] | *points_cnt | The amount of points to show | 
| [in] | *color | The color of the points as a [U, Y1, V, Y2] uint8_t array, or a uint8_t value pointer for grayscale images. Example colors: white = {127, 255, 127, 255}, green = {0, 127, 0, 127}; | 
Definition at line 701 of file image.c.
References foo, idx, image_draw_crosshair(), IMAGE_YUV422, point_t::x, and point_t::y.
Referenced by image_show_points().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void image_subpixel_window | ( | struct image_t * | input, | 
| struct image_t * | output, | ||
| struct point_t * | center, | ||
| uint32_t | subpixel_factor, | ||
| uint8_t | border_size | ||
| ) | 
This outputs a subpixel window image in grayscale Currently only works with Grayscale images as input but could be upgraded to also support YUV422 images.
You can and should only ask a subpixel window of a center point that is w/2 pixels away from the edges
| [in] | *input | Input image (grayscale only) | 
| [out] | *output | Window output (width and height is used to calculate the window size) | 
| [in] | *center | Center point in subpixel coordinates | 
| [in] | subpixel_factor | The subpixel factor per pixel | 
| [in] | border_size | - amount of padding around image. Padding is made by reflecting image elements at the edge Example: f e d c b a | a b c d e f | f e d c b a | 
Definition at line 491 of file image.c.
References image_t::buf, foo, image_t::h, image_t::w, point_t::x, and point_t::y.
Referenced by opticFlowLK(), and opticFlowLK_flat().
 Here is the caller graph for this function:
 Here is the caller graph for this function:This will switch image *a and *b This is faster as image_copy because it doesn't copy the whole image buffer.
| [in,out] | *a | The image to switch | 
| [in,out] | *b | The image to switch with | 
Definition at line 112 of file image.c.
Referenced by calc_fast9_lukas_kanade().
 Here is the caller graph for this function:
 Here is the caller graph for this function:Convert an image to grayscale.
Depending on the output type the U/V bytes are removed
| [in] | *input | The input image (Needs to be YUV422) | 
| [out] | *output | The output image | 
Definition at line 131 of file image.c.
References image_t::buf, dest, image_t::eulers, foo, IMAGE_YUV422, image_t::pprz_ts, and image_t::ts.
Referenced by background_processes(), background_processes_16bit(), calc_fast9_lukas_kanade(), cv_window_func(), and detect_window().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| uint16_t image_yuv422_colorfilt | ( | struct image_t * | input, | 
| struct image_t * | output, | ||
| uint8_t | y_m, | ||
| uint8_t | y_M, | ||
| uint8_t | u_m, | ||
| uint8_t | u_M, | ||
| uint8_t | v_m, | ||
| uint8_t | v_M | ||
| ) | 
Filter colors in an YUV422 image.
| [in] | *input | The input image to filter | 
| [out] | *output | The filtered output image | 
| [in] | y_m | The Y minimum value | 
| [in] | y_M | The Y maximum value | 
| [in] | u_m | The U minimum value | 
| [in] | u_M | The U maximum value | 
| [in] | v_m | The V minimum value | 
| [in] | v_M | The V maximum value | 
Definition at line 173 of file image.c.
References image_t::buf, dest, foo, and image_t::ts.
Referenced by colorfilter_func(), detect_gate_func(), and snake_gate_detection().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void image_yuv422_downsample | ( | struct image_t * | input, | 
| struct image_t * | output, | ||
| uint8_t | downsample | ||
| ) | 
Simplified high-speed low CPU downsample function without averaging downsample factor must be 1, 2, 4, 8 ... 2^X image of type UYVY expected.
Only one color UV per 2 pixels
we keep the UV color of the first pixel pair and sample the intensity evenly 1-3-5-7-... or 1-5-9-...
input: u1y1 v1y2 u3y3 v3y4 u5y5 v5y6 u7y7 v7y8 ... downsample=1 u1y1 v1y2 u3y3 v3y4 u5y5 v5y6 u7y7 v7y8 ... downsample=2 u1y1v1 (skip2) y3 (skip2) u5y5v5 (skip2) y7 (skip2) ... downsample=4 u1y1v1 (skip6) y5 (skip6) ...
| [in] | *input | The input YUV422 image | 
| [out] | *output | The downscaled YUV422 image | 
| [in] | downsample | The downsample factor (must be downsample=2^X) | 
Definition at line 318 of file image.c.
References image_t::buf, dest, foo, image_t::h, image_t::ts, image_t::type, and image_t::w.
Referenced by viewvideo_function().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| uint8_t ker_mul_3x3 | ( | uint8_t const * | source, | 
| int_fast8_t const * | kernel, | ||
| uint8_t | total, | ||
| uint8_t | setting, | ||
| int | width, | ||
| int | YUV | ||
| ) | 
Kernel multiplication for a 3 x 3 kernel.
Pixels outside the edges are taken to be 0.
| [in] | source | The source values | 
| [in] | kernel | The kernel values | 
| total | The kernel total, set to 1 if the result should not be normalised | |
| setting | Variable is used to indicate which pixels the multiplication uses at a specific edges. | |
| YUV | A bool that adds an extra pixel offset if the YUV format is used. | 
Definition at line 1013 of file image.c.
Referenced by image_convolution_3x3().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void pyramid_build | ( | struct image_t * | input, | 
| struct image_t * | output_array, | ||
| uint8_t | pyr_level, | ||
| uint16_t | border_size | ||
| ) | 
This function populates given array of image_t structs with wanted number of padded pyramids based on given input.
| [in] | *input | - input image (grayscale only) | 
| [out] | *output | - array of image_t structs containing image pyiramid levels. Level zero contains original image, followed by pyr_levelof pyramid. | 
| [in] | pyr_level | - number of pyramids to be built. If 0, original image is padded and outputed. | 
| [in] | border_size | - amount of padding around image. Padding is made by reflecting image elements at the edge Example: f e d c b a | a b c d e f | f e d c b a | 
Definition at line 464 of file image.c.
References foo, image_add_border(), image_free(), and pyramid_next_level().
Referenced by opticFlowLK().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:This function takes previous padded pyramid level and outputs next level of pyramid without padding.
For calculating new pixel value 3x3 Gaussian filter matrix is used: [1/4 1/2 1/4]' x [1/4 1/2 1/4] Blur and downsample is performed with two 1D convolutions (horizontal then vertical) instead of a single 2D convolution, to increase performance
| [in] | *input | - input image (grayscale only) | 
| [out] | *output | - the output image | 
| [in] | border_size | - amount of padding around image. Padding is made by reflecting image elements at the edge Example: f e d c b a | a b c d e f | f e d c b a | 
Definition at line 414 of file image.c.
References image_t::buf, foo, image_t::h, image_create(), image_t::type, and image_t::w.
Referenced by pyramid_build().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Sets Y,U,V for a single pixel.
| [in] | im | The input image to filter | 
| [in] | x | The x-coordinate of the pixel | 
| [in] | y | The y-coordinate of the pixel | 
| [in] | Y | The Y-value. | 
| [in] | U | The U-value. | 
| [in] | V | The V value | 
Definition at line 279 of file image.c.
References image_t::buf, foo, image_t::h, and image_t::w.