enum PixelType
Source: lib.joule:23
enum PixelTypeSource: lib.joule:23
struct ImageSource: lib.joule:36
fn zeros(width: usize, height: usize, channels: usize) -> SelfSource: lib.joule:50
fn filled(width: usize, height: usize, channels: usize, value: f64) -> SelfSource: lib.joule:61
fn from_data(data: Vec<f64>, width: usize, height: usize, channels: usize) -> SelfCreate from raw data
Source: lib.joule:71
fn from_2d(data: &[Vec<f64>]) -> SelfCreate from 2D array (grayscale)
Source: lib.joule:82
fn from_rgb(r: &[Vec<f64>], g: &[Vec<f64>], b: &[Vec<f64>]) -> SelfCreate from RGB arrays
Source: lib.joule:100
fn num_pixels(&self) -> usizeGet total number of pixels
Source: lib.joule:122
fn pixel_index(&self, x: usize, y: usize, c: usize) -> usizeSource: lib.joule:128
fn get(&self, x: usize, y: usize, c: usize) -> f64Source: lib.joule:134
fn get_checked(&self, x: i32, y: i32, c: usize) -> f64Get pixel value with bounds checking
Source: lib.joule:139
fn get_clamped(&self, x: i32, y: i32, c: usize) -> f64Get pixel value with clamped bounds
Source: lib.joule:148
fn get_reflect(&self, x: i32, y: i32, c: usize) -> f64Get 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) -> SelfClone image
Source: lib.joule:210
fn to_grayscale(&self) -> SelfSource: 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) -> SelfSource: lib.joule:269
fn crop(&self, x: usize, y: usize, width: usize, height: usize) -> SelfSource: lib.joule:283
fn flip_horizontal(&self) -> SelfSource: lib.joule:303
fn flip_vertical(&self) -> SelfSource: lib.joule:319
fn rotate_90(&self) -> SelfSource: lib.joule:335
fn rotate_180(&self) -> SelfSource: lib.joule:351
fn add(&self, other: &Image) -> SelfSource: lib.joule:372
fn subtract(&self, other: &Image) -> SelfSource: lib.joule:389
fn scale(&self, factor: f64) -> SelfSource: lib.joule:406
fn multiply(&self, other: &Image) -> SelfSource: lib.joule:417
fn blend(&self, other: &Image, alpha: f64) -> SelfSource: lib.joule:434
fn abs_diff(&self, other: &Image) -> SelfSource: lib.joule:452
fn min(&self, other: &Image) -> SelfSource: lib.joule:469
fn max(&self, other: &Image) -> SelfSource: lib.joule:486
fn threshold(&self, thresh: f64, max_val: f64) -> SelfSource: lib.joule:503
fn adaptive_threshold(&self, block_size: usize, c: f64, max_val: f64) -> SelfSource: lib.joule:509
fn histogram(&self, channel: usize, num_bins: usize) -> Vec<usize>Source: lib.joule:528
fn equalize_histogram(&self) -> SelfSource: lib.joule:544
fn mean(&self) -> f64Compute mean of all pixels
Source: lib.joule:572
fn variance(&self) -> f64Compute variance
Source: lib.joule:577
fn std_dev(&self) -> f64Compute standard deviation
Source: lib.joule:583
fn min_value(&self) -> f64Compute min value
Source: lib.joule:588
fn max_value(&self) -> f64Compute max value
Source: lib.joule:593
fn reflect_index(i: i32, size: i32) -> i32Source: lib.joule:598
fn box_blur(image: &Image, kernel_size: usize) -> ImageSource: lib.joule:617
fn gaussian_blur(image: &Image, sigma: f64) -> ImageSource: 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]) -> ImageSource: lib.joule:667
fn convolve(image: &Image, kernel: &[Vec<f64>]) -> ImageSource: lib.joule:705
fn median_filter(image: &Image, kernel_size: usize) -> ImageSource: lib.joule:734
fn bilateral_filter(image: &Image, sigma_space: f64, sigma_color: f64) -> ImageSource: lib.joule:760
fn sharpen(image: &Image, strength: f64) -> ImageSource: lib.joule:799
fn unsharp_mask(image: &Image, sigma: f64, amount: f64) -> ImageSource: lib.joule:810
fn sobel_x(image: &Image) -> ImageSource: lib.joule:818
fn sobel_y(image: &Image) -> ImageSource: lib.joule:830
fn sobel(image: &Image) -> ImageSource: lib.joule:842
fn laplacian(image: &Image) -> ImageSource: lib.joule:859
fn canny(image: &Image, low_threshold: f64, high_threshold: f64) -> ImageSource: lib.joule:871
enum InterpolationSource: lib.joule:956
fn resize(image: &Image, new_width: usize, new_height: usize, method: Interpolation) -> ImageSource: lib.joule:965
fn bilinear_sample(image: &Image, x: f64, y: f64, c: usize) -> f64Source: lib.joule:1002
fn bicubic_sample(image: &Image, x: f64, y: f64, c: usize) -> f64Source: lib.joule:1022
fn cubic_weight(t: f64) -> f64Source: lib.joule:1038
fn lanczos_sample(image: &Image, x: f64, y: f64, c: usize, a: i32) -> f64Source: lib.joule:1049
fn lanczos_kernel(x: f64, a: i32) -> f64Source: 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