Struct dssim_core::Dssim
source · pub struct Dssim { /* private fields */ }
Expand description
Configuration for the comparison
Implementations§
source§impl 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 SsimMap
s are returned only if you’ve enabled them first.
Val
is a fancy wrapper for f64