pub struct EdgeSpec {
pub period: u32,
pub cx: u32,
pub cy: u32,
pub beta: f32,
pub halo: u32,
pub canon: &'static [u8],
pub g0: &'static [f32],
pub dir: &'static [f32],
pub ahd: bool,
}Expand description
The edge-aware demosaic of one frame (the GPU side of flashraw’s Demosaic::EdgeAware):
the filter tables and where the CFA sits in them. flashraw::gpu::edge_spec builds it
from the CPU plan; the mosaic is balanced by DevelopSpec::wb.
Fields§
§period: u32Repeat of the pattern: 2 (Bayer) or 6 (X-Trans).
cx: u32Canonical pattern column and row of frame column and row 0.
cy: u32§beta: f32Weight of the smoothing of the output: 0 for clean frames, up to 0.5 for noisy ones.
halo: u32Pixels from the frame border that are developed bilinearly (the CPU edgeaware::HALO).
canon: &'static [u8]Colour (0 R, 1 G, 2 B) of each position of the canonical pattern, period squared.
g0: &'static [f32][period*period][49]: the 7x7 filter of the first green estimate.
dir: &'static [f32][period*period][3][4][49]: the 7x7 filters per position, colour and direction.
ahd: boolThe AHD demosaic (Demosaic::Ahd, Bayer only) instead of the filters: it uses the
pattern (canon, cx, cy) and halo; beta must be 0.
Trait Implementations§
Auto Trait Implementations§
impl Forget for EdgeSpec
impl Freeze for EdgeSpec
impl Move for EdgeSpec
impl RefUnwindSafe for EdgeSpec
impl Send for EdgeSpec
impl Sync for EdgeSpec
impl Unpin for EdgeSpec
impl UnsafeUnpin for EdgeSpec
impl UnwindSafe for EdgeSpec
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more