← Back

Module lib

<p>Joule Standard Library - Image Processing Comprehensive OpenCV-level image processing capabilities</p>

enum PixelType

Source: lib.joule:23

struct Image

Source: lib.joule:36

fn zeros(width: usize, height: usize, channels: usize) -> Self

Source: lib.joule:50

fn filled(width: usize, height: usize, channels: usize, value: f64) -> Self

Source: lib.joule:61

fn from_data(data: Vec<f64>, width: usize, height: usize, channels: usize) -> Self

Create from raw data

Source: lib.joule:71

fn from_2d(data: &[Vec<f64>]) -> Self

Create from 2D array (grayscale)

Source: lib.joule:82

fn from_rgb(r: &[Vec<f64>], g: &[Vec<f64>], b: &[Vec<f64>]) -> Self

Create from RGB arrays

Source: lib.joule:100

fn num_pixels(&self) -> usize

Get total number of pixels

Source: lib.joule:122

fn pixel_index(&self, x: usize, y: usize, c: usize) -> usize

Source: lib.joule:128

fn get(&self, x: usize, y: usize, c: usize) -> f64

Source: lib.joule:134

fn get_checked(&self, x: i32, y: i32, c: usize) -> f64

Get pixel value with bounds checking

Source: lib.joule:139

fn get_clamped(&self, x: i32, y: i32, c: usize) -> f64

Get pixel value with clamped bounds

Source: lib.joule:148

fn get_reflect(&self, x: i32, y: i32, c: usize) -> f64

Get pixel value with reflection

Source: lib.joule:155

fn set(&mut self, x: usize, y: usize, c: usize, value: f64)

Source: lib.joule:163

fn get_pixel(&self, x: usize, y: usize) -> Vec<f64>

Get all channels at pixel

Source: lib.joule:169

fn set_pixel(&mut self, x: usize, y: usize, values: &[f64])

Set all channels at pixel

Source: lib.joule:176

fn row(&self, y: usize) -> &[f64]

Get row as slice

Source: lib.joule:185

fn row_mut(&mut self, y: usize) -> &mut [f64]

Get mutable row

Source: lib.joule:192

fn channel(&self, c: usize) -> Vec<Vec<f64>>

Get single channel as 2D array

Source: lib.joule:199

fn clone_image(&self) -> Self

Clone image

Source: lib.joule:210

fn to_grayscale(&self) -> Self

Source: lib.joule:221

fn normalize(&mut self)

Source: lib.joule:247

fn clamp(&mut self, min: f64, max: f64)

Source: lib.joule:261

fn map<F>(&self, f: F) -> Self

Source: lib.joule:269

fn crop(&self, x: usize, y: usize, width: usize, height: usize) -> Self

Source: lib.joule:283

fn flip_horizontal(&self) -> Self

Source: lib.joule:303

fn flip_vertical(&self) -> Self

Source: lib.joule:319

fn rotate_90(&self) -> Self

Source: lib.joule:335

fn rotate_180(&self) -> Self

Source: lib.joule:351

fn add(&self, other: &Image) -> Self

Source: lib.joule:372

fn subtract(&self, other: &Image) -> Self

Source: lib.joule:389

fn scale(&self, factor: f64) -> Self

Source: lib.joule:406

fn multiply(&self, other: &Image) -> Self

Source: lib.joule:417

fn blend(&self, other: &Image, alpha: f64) -> Self

Source: lib.joule:434

fn abs_diff(&self, other: &Image) -> Self

Source: lib.joule:452

fn min(&self, other: &Image) -> Self

Source: lib.joule:469

fn max(&self, other: &Image) -> Self

Source: lib.joule:486

fn threshold(&self, thresh: f64, max_val: f64) -> Self

Source: lib.joule:503

fn adaptive_threshold(&self, block_size: usize, c: f64, max_val: f64) -> Self

Source: lib.joule:509

fn histogram(&self, channel: usize, num_bins: usize) -> Vec<usize>

Source: lib.joule:528

fn equalize_histogram(&self) -> Self

Source: lib.joule:544

fn mean(&self) -> f64

Compute mean of all pixels

Source: lib.joule:572

fn variance(&self) -> f64

Compute variance

Source: lib.joule:577

fn std_dev(&self) -> f64

Compute standard deviation

Source: lib.joule:583

fn min_value(&self) -> f64

Compute min value

Source: lib.joule:588

fn max_value(&self) -> f64

Compute max value

Source: lib.joule:593

fn reflect_index(i: i32, size: i32) -> i32

Source: lib.joule:598

fn box_blur(image: &Image, kernel_size: usize) -> Image

Source: lib.joule:617

fn gaussian_blur(image: &Image, sigma: f64) -> Image

Source: lib.joule:641

fn gaussian_kernel(size: usize, sigma: f64) -> Vec<f64>

Create 1D Gaussian kernel

Source: lib.joule:649

fn convolve_separable(image: &Image, kernel: &[f64]) -> Image

Source: lib.joule:667

fn convolve(image: &Image, kernel: &[Vec<f64>]) -> Image

Source: lib.joule:705

fn median_filter(image: &Image, kernel_size: usize) -> Image

Source: lib.joule:734

fn bilateral_filter(image: &Image, sigma_space: f64, sigma_color: f64) -> Image

Source: lib.joule:760

fn sharpen(image: &Image, strength: f64) -> Image

Source: lib.joule:799

fn unsharp_mask(image: &Image, sigma: f64, amount: f64) -> Image

Source: lib.joule:810

fn sobel_x(image: &Image) -> Image

Source: lib.joule:818

fn sobel_y(image: &Image) -> Image

Source: lib.joule:830

fn sobel(image: &Image) -> Image

Source: lib.joule:842

fn laplacian(image: &Image) -> Image

Source: lib.joule:859

fn canny(image: &Image, low_threshold: f64, high_threshold: f64) -> Image

Source: lib.joule:871

enum Interpolation

Source: lib.joule:956

fn resize(image: &Image, new_width: usize, new_height: usize, method: Interpolation) -> Image

Source: lib.joule:965

fn bilinear_sample(image: &Image, x: f64, y: f64, c: usize) -> f64

Source: lib.joule:1002

fn bicubic_sample(image: &Image, x: f64, y: f64, c: usize) -> f64

Source: lib.joule:1022

fn cubic_weight(t: f64) -> f64

Source: lib.joule:1038

fn lanczos_sample(image: &Image, x: f64, y: f64, c: usize, a: i32) -> f64

Source: lib.joule:1049

fn lanczos_kernel(x: f64, a: i32) -> f64

Source: lib.joule:1073

fn test_image_creation()

Source: lib.joule:1093

fn test_get_set()

Source: lib.joule:1102

fn test_grayscale()

Source: lib.joule:1110