FFmpeg
|
Go to the source code of this file.
Macros | |
#define | INTERPOLATE_METHOD(name) |
#define | PIXEL(img, x, y, w, h, stride, def) |
Functions | |
INTERPOLATE_METHOD (interpolate_nearest) | |
Nearest neighbor interpolation. More... | |
INTERPOLATE_METHOD (interpolate_bilinear) | |
Bilinear interpolation. More... | |
INTERPOLATE_METHOD (interpolate_biquadratic) | |
Biquadratic interpolation. More... | |
void | ff_get_matrix (float x_shift, float y_shift, float angle, float scale_x, float scale_y, float *matrix) |
Get an affine transformation matrix from given translation, rotation, and zoom factors. More... | |
int | ff_affine_transform (const uint8_t *src, uint8_t *dst, int src_stride, int dst_stride, int width, int height, const float *matrix, enum InterpolateMethod interpolate, enum FillMethod fill) |
Do an affine transformation with the given interpolation method. More... | |
transform input video
Definition in file transform.c.
#define INTERPOLATE_METHOD | ( | name | ) |
Definition at line 36 of file transform.c.
INTERPOLATE_METHOD | ( | interpolate_nearest | ) |
Nearest neighbor interpolation.
Definition at line 44 of file transform.c.
INTERPOLATE_METHOD | ( | interpolate_bilinear | ) |
Bilinear interpolation.
Definition at line 52 of file transform.c.
INTERPOLATE_METHOD | ( | interpolate_biquadratic | ) |
Biquadratic interpolation.
Definition at line 79 of file transform.c.
void ff_get_matrix | ( | float | x_shift, |
float | y_shift, | ||
float | angle, | ||
float | scale_x, | ||
float | scale_y, | ||
float * | matrix | ||
) |
Get an affine transformation matrix from given translation, rotation, and zoom factors.
The matrix will look like:
[ scale_x * cos(angle), -sin(angle), x_shift, sin(angle), scale_y * cos(angle), y_shift, 0, 0, 1 ]
x_shift | horizontal translation |
y_shift | vertical translation |
angle | rotation in radians |
scale_x | x scale percent (1.0 = 100%) |
scale_y | y scale percent (1.0 = 100%) |
matrix | 9-item affine transformation matrix |
Definition at line 106 of file transform.c.
Referenced by filter_frame(), and transform_center_scale().
int ff_affine_transform | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_stride, | ||
int | dst_stride, | ||
int | width, | ||
int | height, | ||
const float * | matrix, | ||
enum InterpolateMethod | interpolate, | ||
enum FillMethod | fill | ||
) |
Do an affine transformation with the given interpolation method.
This multiplies each vector [x,y,1] by the matrix and then interpolates to get the final value.
src | source image |
dst | destination image |
src_stride | source image line size in bytes |
dst_stride | destination image line size in bytes |
width | image width in pixels |
height | image height in pixels |
matrix | 9-item affine transformation matrix |
interpolate | pixel interpolation method |
fill | edge fill method |
Definition at line 125 of file transform.c.
Referenced by deshake_transform_c().