pub struct MatteHandle { /* private fields */ }Expand description
Builder for chaining mask processing operations on the raw matte.
The raw matte is the soft, grayscale alpha prediction from the model.
§Example
use outline::Outline;
let outline = Outline::new("model.onnx");
let session = outline.for_image("input.jpg")?;
// Chain operations and execute them
let mask = session.matte()
.blur_with(6.0) // Smooth edges
.threshold_with(120) // Convert to binary
.dilate_with(5.0) // Expand slightly
.processed()?; // Execute operations
mask.save("mask.png")?;Implementations§
Source§impl MatteHandle
impl MatteHandle
Sourcepub fn into_image(self) -> GrayImage
pub fn into_image(self) -> GrayImage
Consume the handle and return the raw grayscale matte.
Sourcepub fn save(&self, path: impl AsRef<Path>) -> OutlineResult<()>
pub fn save(&self, path: impl AsRef<Path>) -> OutlineResult<()>
Save the raw grayscale matte to the specified path.
Sourcepub fn threshold_with(self, value: u8) -> Self
pub fn threshold_with(self, value: u8) -> Self
Add a threshold operation with a custom value.
Sourcepub fn dilate(self) -> Self
pub fn dilate(self) -> Self
Add a dilation operation using the default radius.
Note: Dilation typically works best on binary masks. Consider calling
threshold before dilate if working with a soft matte.
Sourcepub fn dilate_with(self, radius: f32) -> Self
pub fn dilate_with(self, radius: f32) -> Self
Add a dilation operation with a custom radius.
Note: Dilation typically works best on binary masks. Consider calling
threshold before dilate if working with a soft matte.
Sourcepub fn fill_holes(self) -> Self
pub fn fill_holes(self) -> Self
Add a hole-filling operation to the processing pipeline.
Note: Hole-filling typically works best on binary masks. Consider calling
threshold before fill_holes if working with a soft matte.
Sourcepub fn processed(self) -> OutlineResult<MaskHandle>
pub fn processed(self) -> OutlineResult<MaskHandle>
Process the raw matte with the accumulated operations and default options.
Sourcepub fn processed_with(
self,
options: &MaskProcessingOptions,
) -> OutlineResult<MaskHandle>
pub fn processed_with( self, options: &MaskProcessingOptions, ) -> OutlineResult<MaskHandle>
Process the raw matte with the accumulated operations and custom options.
Sourcepub fn foreground(&self) -> OutlineResult<ForegroundHandle>
pub fn foreground(&self) -> OutlineResult<ForegroundHandle>
Compose the RGBA foreground image from the RGB image and the raw matte.
Sourcepub fn trace<V>(
&self,
vectorizer: &V,
options: &V::Options,
) -> OutlineResult<V::Output>where
V: MaskVectorizer,
pub fn trace<V>(
&self,
vectorizer: &V,
options: &V::Options,
) -> OutlineResult<V::Output>where
V: MaskVectorizer,
Trace the raw matte using the specified vectorizer and options.
Trait Implementations§
Source§impl Clone for MatteHandle
impl Clone for MatteHandle
Source§fn clone(&self) -> MatteHandle
fn clone(&self) -> MatteHandle
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for MatteHandle
impl RefUnwindSafe for MatteHandle
impl Send for MatteHandle
impl Sync for MatteHandle
impl Unpin for MatteHandle
impl UnsafeUnpin for MatteHandle
impl UnwindSafe for MatteHandle
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.