pub enum ChangeSource<'a> {
Diff {
result: &'a DiffResult,
output: &'a Image,
},
Ssim {
outcome: &'a SsimOutcome,
floor: f32,
},
Regions(&'a [BoundingBox]),
}Expand description
Where the change information came from.
Each variant is what one of the producers hands back, taken by name: this crate sits above them and consumes their results, rather than either of them depending on it. What differs between the variants is only the precision of the description, and whether it needs refining.
Variants§
Diff
What [blazediff::diff] returns: its result plus the visualization it
wrote. Changed pixels are the non-grayscale ones, so the mask is exact
and is used as-is; the counts come from the diff rather than being
recomputed, because it knows which pixels it excluded as anti-aliasing.
The diff must have been run with mask_options so the visualization
is readable as a mask whatever colours the caller wanted.
Ssim
What any blazediff_ssim metric returns. Cells scoring below floor
are changed. The map’s grid is coarser than a pixel, so the boxes it
yields are refined against the source pixels before anything is
measured.
Regions(&'a [BoundingBox])
Regions the caller already knows — DOM rectangles, a crop list, anything. Refined like a score map, so they may be as coarse as you like.