use crate::{
image::{segmentation::label::LabelImage, Pixel},
math::FloatNumber,
};
pub trait Segmentation<T>
where
T: FloatNumber,
{
type Err;
#[allow(dead_code)]
fn segment(
&self,
width: usize,
height: usize,
pixels: &[Pixel<T>],
) -> Result<LabelImage<T>, Self::Err> {
let mask = vec![true; width * height];
self.segment_with_mask(width, height, pixels, &mask)
}
fn segment_with_mask(
&self,
width: usize,
height: usize,
pixels: &[Pixel<T>],
mask: &[bool],
) -> Result<LabelImage<T>, Self::Err>;
}