pub use gaussian_sample::GaussianSamplingRemapper;
use image::Rgb;
use kiddo::float::kdtree::KdTree;
pub use nearest_neighbor::NearestNeighborRemapper;
use rayon::prelude::*;
pub use rbf::{GaussianRemapper, LinearRemapper, ShepardRemapper};
use crate::Image;
mod gaussian_sample;
mod nearest_neighbor;
mod rbf;
pub trait InterpolatedRemapper<'a>: Sync {
fn remap_pixel(&self, pixel: &mut Rgb<u8>);
fn remap_image(&self, image: &mut Image) {
image.par_pixels_mut().for_each(|pixel| {
self.remap_pixel(pixel);
});
}
}
type ColorTree = KdTree<f64, u32, 3, 4, u32>;