Struct dssim_core::Dssim
source · [−]pub struct Dssim { /* private fields */ }Expand description
Configuration for the comparison
Implementations
sourceimpl Dssim
impl Dssim
sourcepub fn set_scales(&mut self, scales: &[f64])
pub fn set_scales(&mut self, scales: &[f64])
Set how many scales will be used, and weights of each scale
sourcepub fn set_save_ssim_maps(&mut self, num_scales: u8)
pub fn set_save_ssim_maps(&mut self, num_scales: u8)
Set how many scales will be kept for saving
sourcepub fn create_image_rgba(
&self,
bitmap: &[RGBA<u8>],
width: usize,
height: usize
) -> Option<DssimImage<f32>>
pub fn create_image_rgba(
&self,
bitmap: &[RGBA<u8>],
width: usize,
height: usize
) -> Option<DssimImage<f32>>
Create image from an array of RGBA pixels (sRGB, non-premultiplied, alpha last).
If you have a slice of u8, then see rgb crate’s as_rgba().
sourcepub fn create_image_rgb(
&self,
bitmap: &[RGB<u8>],
width: usize,
height: usize
) -> Option<DssimImage<f32>>
pub fn create_image_rgb(
&self,
bitmap: &[RGB<u8>],
width: usize,
height: usize
) -> Option<DssimImage<f32>>
Create image from an array of packed RGB pixels (sRGB).
If you have a slice of u8, then see rgb crate’s as_rgb().
sourcepub fn create_image<InBitmap, OutBitmap>(
&self,
src_img: &InBitmap
) -> Option<DssimImage<f32>>where
InBitmap: ToLABBitmap + Send + Sync + Downsample<Output = OutBitmap>,
OutBitmap: ToLABBitmap + Send + Sync + Downsample<Output = OutBitmap>,
pub fn create_image<InBitmap, OutBitmap>(
&self,
src_img: &InBitmap
) -> Option<DssimImage<f32>>where
InBitmap: ToLABBitmap + Send + Sync + Downsample<Output = OutBitmap>,
OutBitmap: ToLABBitmap + Send + Sync + Downsample<Output = OutBitmap>,
The input image is defined using the imgref crate, and the pixel type can be:
ImgVec<RGBAPLU>— RGBA premultiplied alpha, linear, float scaled to 0..1ImgVec<RGBLU>— RGBA linear, float scaled to 0..1ImgVec<f32>— linear light grayscale, float scaled to 0..1
And there’s ToRGBAPLU::to_rgbaplu() trait to convert the input pixels from
[RGBA<u8>], [RGBA<u16>], [RGB<u8>], or RGB<u16>. See lib.rs for example how it’s done.
You can implement ToLABBitmap and Downsample traits on your own image type.
sourcepub fn compare<M: Borrow<DssimImage<f32>>>(
&self,
original_image: &DssimImage<f32>,
modified_image: M
) -> (Val, Vec<SsimMap>)
pub fn compare<M: Borrow<DssimImage<f32>>>(
&self,
original_image: &DssimImage<f32>,
modified_image: M
) -> (Val, Vec<SsimMap>)
Compare original with another image. See create_image
The SsimMaps are returned only if you’ve enabled them first.
Val is a fancy wrapper for f64
