Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
image.h File Reference

Image helper functions like resizing, color filter, converters... More...

#include "std.h"
#include <sys/time.h>
#include <state.h>
+ Include dependency graph for image.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  image_t
 
struct  point_t
 
struct  point3d_t
 
struct  flow_t
 
struct  img_size_t
 
struct  crop_t
 

Enumerations

enum  image_type {
  IMAGE_YUV422 , IMAGE_GRAYSCALE , IMAGE_JPEG , IMAGE_GRADIENT ,
  IMAGE_INT16
}
 

Functions

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. More...
 
void image_create (struct image_t *img, uint16_t width, uint16_t height, enum image_type type)
 Create a new image. More...
 
void image_free (struct image_t *img)
 Free the image. More...
 
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. More...
 
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. More...
 
void image_to_grayscale (struct image_t *input, struct image_t *output)
 Convert an image to grayscale. More...
 
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. More...
 
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. More...
 
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. More...
 
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 ... More...
 
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. More...
 
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]. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void image_show_flow (struct image_t *img, struct flow_t *vectors, uint16_t points_cnt, uint8_t subpixel_factor)
 
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. More...
 
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. More...
 
void image_draw_line (struct image_t *img, struct point_t *from, struct point_t *to)
 Draw a pink line on the image. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

Detailed Description

Image helper functions like resizing, color filter, converters...

Definition in file image.h.


Data Structure Documentation

◆ image_t

struct image_t

Definition at line 44 of file image.h.

+ Collaboration diagram for image_t:
Data Fields
void * buf Image buffer (depending on the image_type)
uint8_t buf_idx Buffer index for V4L2 freeing.
uint32_t buf_size The buffer size.
struct FloatEulers eulers Euler Angles at time of image.
uint16_t h Image height.
uint32_t pprz_ts The timestamp in us since system startup.
struct timeval ts The timestamp of creation.
enum image_type type The image type.
uint16_t w Image width.

◆ point_t

struct point_t

Definition at line 58 of file image.h.

Data Fields
uint16_t count Number of times the point has been tracked successfully.
uint32_t x The x coordinate of the point.
uint16_t x_sub The x subpixel coordinate of the point.
uint32_t y The y coordinate of the point.
uint16_t y_sub The y subpixel coordinate of the point.

◆ point3d_t

struct point3d_t

Definition at line 68 of file image.h.

Data Fields
float X The x coordinate of the point.
float Y The y coordinate of the point.
float Z The y coordinate of the point.

◆ flow_t

struct flow_t

Definition at line 78 of file image.h.

+ Collaboration diagram for flow_t:
Data Fields
uint32_t error The matching error in the tracking process in subpixels.
int32_t flow_x The x direction flow in subpixels.
int32_t flow_y The y direction flow in subpixels.
struct point_t pos The original position the flow comes from in subpixels.

◆ img_size_t

struct img_size_t

Definition at line 86 of file image.h.

Data Fields
uint16_t h The height.
uint16_t w The width.

◆ crop_t

struct crop_t

Definition at line 92 of file image.h.

Data Fields
uint16_t h height of the cropped area
uint16_t w Width of the cropped area.
uint16_t x Start position x (horizontal)
uint16_t y Start position y (vertical)

Enumeration Type Documentation

◆ image_type

enum image_type
Enumerator
IMAGE_YUV422 

UYVY format (uint16 per pixel)

IMAGE_GRAYSCALE 

Grayscale image with only the Y part (uint8 per pixel)

IMAGE_JPEG 

An JPEG encoded image (not per pixel encoded)

IMAGE_GRADIENT 

An image gradient (int16 per pixel)

IMAGE_INT16 

An image to hold disparity image data from openCV (int16 per pixel)

Definition at line 35 of file image.h.

Function Documentation

◆ check_color_yuv422()

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.

Parameters
[in]imThe input image to filter
[in]xThe x-coordinate of the pixel
[in]yThe y-coordinate of the pixel
[in]y_mThe Y minimum value
[in]y_MThe Y maximum value
[in]u_mThe U minimum value
[in]u_MThe U maximum value
[in]v_mThe V minimum value
[in]v_MThe V maximum value
Returns
The success of the filter.

Definition at line 237 of file image.c.

References image_t::buf, image_t::h, and image_t::w.

Referenced by check_color_snake_gate_detection().

+ Here is the caller graph for this function:

◆ image_add_border()

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.

Parameters
[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, 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 caller graph for this function:

◆ image_calculate_g()

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.

Parameters
[in]*dxThe gradient in the X direction
[in]*dyThe gradient in the Y direction
[out]*gThe G[4] vector devided by 255 to keep in range

Definition at line 573 of file image.c.

References image_t::buf, g, image_t::h, and image_t::w.

Referenced by opticFlowLK(), and opticFlowLK_flat().

+ Here is the caller graph for this function:

◆ image_copy()

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.

Parameters
[in]*inputThe input image to copy from
[out]*outputThe out image to copy to

Definition at line 89 of file image.c.

References image_t::buf, image_t::buf_size, image_t::eulers, image_t::h, image_t::pprz_ts, image_t::ts, image_t::type, and image_t::w.

Referenced by calc_fast9_lukas_kanade(), cv_async_function(), and undistort_image_func().

+ Here is the caller graph for this function:

◆ image_create()

void image_create ( struct image_t img,
uint16_t  width,
uint16_t  height,
enum image_type  type 
)

Create a new image.

Parameters
[out]*imgThe output image
[in]widthThe width of the image
[in]heightThe height of the image
[in]typeThe type of image (YUV422 or grayscale)

Definition at line 43 of file image.c.

References image_t::buf, image_t::buf_size, CACHE_LINE_LENGTH, image_t::h, IMAGE_GRADIENT, IMAGE_INT16, IMAGE_JPEG, IMAGE_YUV422, image_t::type, and image_t::w.

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(), and viewvideo_function().

+ Here is the caller graph for this function:

◆ image_difference()

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.

Parameters
[in]*img_aThe image to substract from
[in]*img_bThe image to substract from img_a
[out]*diffThe image difference (if not needed can be NULL)
Returns
The squared difference summed

Definition at line 605 of file image.c.

References image_t::buf, image_t::h, and image_t::w.

Referenced by opticFlowLK(), and opticFlowLK_flat().

+ Here is the caller graph for this function:

◆ image_draw_crosshair()

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.

Parameters
[in,out]*imgThe image to show the line on
[in]locThe location of the cross-hair
[in]colorThe 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_crosshairActually the half size of the cross hair

Definition at line 891 of file image.c.

References image_t::h, image_draw_line_color(), image_t::w, 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 caller graph for this function:

◆ image_draw_line()

void image_draw_line ( struct image_t img,
struct point_t from,
struct point_t to 
)

Draw a pink line on the image.

Parameters
[in,out]*imgThe image to show the line on
[in]*fromThe point to draw from
[in]*toThe point to draw to

Definition at line 917 of file image.c.

References image_draw_line_color().

Referenced by draw_edgeflow_img(), and qrscan().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ image_draw_line_color()

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.

Parameters
[in,out]*imgThe image to show the line on
[in]*fromThe point to draw from
[in]*toThe point to draw to
[in]*colorThe 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 image_t::buf, image_t::h, IMAGE_YUV422, image_t::type, image_t::w, 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:

◆ image_draw_rectangle()

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.

Parameters
[in,out]*imgThe image to show the line on
[in]x_minstart in x
[in]x_maxend of x
[in]y_minstart in y
[in]y_maxend of y
[in]colorin [U, Y, V, Y] format

Definition at line 849 of file image.c.

References image_draw_line_color(), point_t::x, and point_t::y.

+ Here is the call graph for this function:

◆ image_free()

void image_free ( struct image_t img)

Free the image.

Parameters
[in]*imgThe image to free

Definition at line 75 of file image.c.

References image_t::buf.

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:

◆ image_gradient_pixel()

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.

Parameters
[in,out]*imgThe image
[in]locThe location at which to get the gradient
[in]method0 = {-1, 0, 1}, 1 = Sobel {-1, 0, 1; -2, 0, 2; -1, 0, 1}
[in]dxThe gradient in x-direction
[in]dyThe gradient in y-direction

Definition at line 777 of file image.c.

References image_t::buf, image_t::h, IMAGE_YUV422, image_t::type, image_t::w, point_t::x, and point_t::y.

Referenced by act_fast().

+ Here is the caller graph for this function:

◆ image_gradients()

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].

Parameters
[in]*inputInput grayscale image
[out]*dxOutput gradient in the X direction (dx->w = input->w-2, dx->h = input->h-2)
[out]*dyOutput 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, image_t::h, and image_t::w.

Referenced by opticFlowLK(), and opticFlowLK_flat().

+ Here is the caller graph for this function:

◆ image_multiply()

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.

Parameters
[in]*img_aThe image to multiply
[in]*img_bThe image to multiply with
[out]*multThe image multiplication (if not needed can be NULL)
Returns
The sum of the multiplcation

Definition at line 643 of file image.c.

References image_t::buf, image_t::h, and image_t::w.

Referenced by opticFlowLK(), and opticFlowLK_flat().

+ Here is the caller graph for this function:

◆ image_show_flow()

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 image_show_flow_color().

+ Here is the call graph for this function:

◆ image_show_flow_color()

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.

Parameters
[in,out]*imgThe image to show the flow on
[in]*vectorsThe flow vectors to show
[in]*points_cntThe amount of points and vectors to show
[in]subpixel_factor
[in]colorcolor for good vectors
[in]bad_colorcolor for bad vectors

Definition at line 743 of file image.c.

References flow_t::flow_x, flow_t::flow_y, image_draw_crosshair(), image_draw_line_color(), LARGE_FLOW_ERROR, flow_t::pos, 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 caller graph for this function:

◆ image_show_points()

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.

This works with YUV422 and grayscale images

Parameters
[in,out]*imgThe image to place the points on
[in]*pointsThe points to sohw
[in]*points_cntThe amount of points to show

Definition at line 679 of file image.c.

References image_show_points_color().

Referenced by calc_fast9_lukas_kanade().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ image_show_points_color()

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

Parameters
[in,out]*imgThe image to place the points on
[in]*pointsThe points to show
[in]*points_cntThe amount of points to show
[in]*colorThe 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 image_t::buf, idx, image_draw_crosshair(), IMAGE_YUV422, image_t::type, image_t::w, point_t::x, and point_t::y.

Referenced by image_show_points().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ image_subpixel_window()

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

Parameters
[in]*inputInput image (grayscale only)
[out]*outputWindow output (width and height is used to calculate the window size)
[in]*centerCenter point in subpixel coordinates
[in]subpixel_factorThe 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, 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:

◆ image_switch()

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.

Parameters
[in,out]*aThe image to switch
[in,out]*bThe image to switch with

Definition at line 112 of file image.c.

References b.

Referenced by calc_fast9_lukas_kanade().

+ Here is the caller graph for this function:

◆ image_to_grayscale()

void image_to_grayscale ( struct image_t input,
struct image_t output 
)

Convert an image to grayscale.

Depending on the output type the U/V bytes are removed

Parameters
[in]*inputThe input image (Needs to be YUV422)
[out]*outputThe output image

Definition at line 131 of file image.c.

References image_t::buf, dest, image_t::eulers, image_t::h, IMAGE_YUV422, image_t::pprz_ts, image_t::ts, image_t::type, and image_t::w.

Referenced by calc_fast9_lukas_kanade(), cv_window_func(), and detect_window().

+ Here is the caller graph for this function:

◆ image_yuv422_colorfilt()

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.

Parameters
[in]*inputThe input image to filter
[out]*outputThe filtered output image
[in]y_mThe Y minimum value
[in]y_MThe Y maximum value
[in]u_mThe U minimum value
[in]u_MThe U maximum value
[in]v_mThe V minimum value
[in]v_MThe V maximum value
Returns
The amount of filtered pixels

Definition at line 173 of file image.c.

References image_t::buf, dest, image_t::h, image_t::ts, and image_t::w.

Referenced by colorfilter_func(), detect_gate_func(), and snake_gate_detection().

+ Here is the caller graph for this function:

◆ image_yuv422_downsample()

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) ...

Parameters
[in]*inputThe input YUV422 image
[out]*outputThe downscaled YUV422 image
[in]downsampleThe downsample factor (must be downsample=2^X)

Definition at line 318 of file image.c.

References image_t::buf, dest, 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:

◆ pyramid_build()

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.

Parameters
[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_level of 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 image_add_border(), image_free(), and pyramid_next_level().

Referenced by opticFlowLK().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pyramid_next_level()

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.

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

Parameters
[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, 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 caller graph for this function:

◆ set_color_yuv422()

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.

Parameters
[in]imThe input image to filter
[in]xThe x-coordinate of the pixel
[in]yThe y-coordinate of the pixel
[in]YThe Y-value.
[in]UThe U-value.
[in]VThe V value

Definition at line 279 of file image.c.

References image_t::buf, image_t::h, image_t::w, and mesonh.mesonh_atmosphere::Y.