← Back

Module transform

struct Transform2D

Source: transform.joule:13

fn identity() -> Self

Identity transformation

Source: transform.joule:20

fn translation(tx: f64, ty: f64) -> Self

Translation transformation

Source: transform.joule:31

fn scale(sx: f64, sy: f64) -> Self

Scaling transformation

Source: transform.joule:42

fn uniform_scale(s: f64) -> Self

Uniform scaling

Source: transform.joule:53

fn rotation(angle: f64) -> Self

Rotation transformation (angle in radians)

Source: transform.joule:58

fn rotation_around(angle: f64, cx: f64, cy: f64) -> Self

Rotation around a point (angle in radians)

Source: transform.joule:71

fn shear(shx: f64, shy: f64) -> Self

Shear transformation

Source: transform.joule:79

fn flip_horizontal(width: f64) -> Self

Horizontal flip

Source: transform.joule:90

fn flip_vertical(height: f64) -> Self

Vertical flip

Source: transform.joule:101

fn from_points(src: [(f64, f64); 3], dst: [(f64, f64); 3]) -> Option<Self>

Create affine transformation from 3 point correspondences

Source: transform.joule:112

fn compose(&self, other: &Transform2D) -> Self

Compose two transformations (self * other)

Source: transform.joule:153

fn inverse(&self) -> Option<Self>

Compute inverse transformation

Source: transform.joule:168

fn transform_point(&self, x: f64, y: f64) -> (f64, f64)

Transform a point

Source: transform.joule:204

fn is_affine(&self) -> bool

Check if this is an affine transformation

Source: transform.joule:212

fn perspective_from_points(src: [(f64, f64); 4], dst: [(f64, f64); 4]) -> Option<Transform2D>

Source: transform.joule:225

fn solve_linear_system(a: &[[f64; 8]; 8], b: &[f64; 8]) -> Option<[f64; 8]>

Source: transform.joule:262

fn warp(

Source: transform.joule:317

fn rotate(image: &Image, angle: f64, interpolation: Interpolation) -> Image

Source: transform.joule:398

fn rotate_crop(image: &Image, angle: f64, interpolation: Interpolation) -> Image

Source: transform.joule:447

fn perspective_warp(

Source: transform.joule:482

fn remap(

Source: transform.joule:503

fn radial_distort(image: &Image, k1: f64, k2: f64, k3: f64) -> Image

Source: transform.joule:545

fn radial_undistort(image: &Image, k1: f64, k2: f64, k3: f64) -> Image

Source: transform.joule:583

fn cartesian_to_polar(image: &Image, radius_bins: usize, angle_bins: usize) -> Image

Source: transform.joule:593

fn polar_to_cartesian(

Source: transform.joule:626

fn log_polar(image: &Image, radius_bins: usize, angle_bins: usize) -> Image

Source: transform.joule:684

fn gaussian_pyramid(image: &Image, levels: usize) -> Vec<Image>

Source: transform.joule:723

fn pyrdown(image: &Image) -> Image

Source: transform.joule:740

fn pyrup(image: &Image) -> Image

Source: transform.joule:763

fn laplacian_pyramid(image: &Image, levels: usize) -> Vec<Image>

Source: transform.joule:785

fn reconstruct_laplacian(pyramid: &[Image]) -> Image

Source: transform.joule:810

fn test_transform_identity()

Source: transform.joule:842

fn test_transform_translation()

Source: transform.joule:850

fn test_transform_rotation()

Source: transform.joule:858

fn test_transform_inverse()

Source: transform.joule:866

fn test_gaussian_pyramid()

Source: transform.joule:883