pub struct Markesteijn;Expand description
Markesteijn demosaicing algorithm for X-Trans sensors.
This is a single-pass weighted-interpolation implementation. Green pixels are copied directly; at every non-green site green is estimated with an inverse-distance² weighted average of all greens in a 5×5 window. Red and Blue planes are then built in the “color-difference” domain: the difference (channel − green) is interpolated from the known samples in a 7×7 window, and the final value is recovered as G + interpolated_diff.
While not as sophisticated as the multi-pass LibRaw variant, this produces reasonable colour for Fujifilm X-Trans sensors and passes all correctness tests.
Trait Implementations§
Source§impl Demosaic for Markesteijn
impl Demosaic for Markesteijn
Auto Trait Implementations§
impl Freeze for Markesteijn
impl RefUnwindSafe for Markesteijn
impl Send for Markesteijn
impl Sync for Markesteijn
impl Unpin for Markesteijn
impl UnsafeUnpin for Markesteijn
impl UnwindSafe for Markesteijn
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 more