pub struct Learner {Show 26 fields
pub width: usize,
pub height: usize,
pub cell: usize,
pub cols: usize,
pub rows: usize,
pub split: Vec<f64>,
pub evidence: Vec<f64>,
pub activity: Vec<f64>,
pub observations: Vec<f64>,
pub row_fixed: Vec<f64>,
pub row_moving: Vec<f64>,
pub pixel_fixed: Vec<f64>,
pub pixel_moving: Vec<f64>,
pub informative_frames: u32,
pub row_change: Vec<f64>,
pub col_change: Vec<f64>,
pub col_moving: Vec<f64>,
pub col_mean: Vec<f64>,
pub col_gain: Vec<f64>,
pub horizontal_gain: Vec<f64>,
pub native_row_change: Vec<f64>,
pub native_col_change: Vec<f64>,
pub native_col_mean: Vec<f64>,
pub native_frames: u32,
pub native_width: usize,
pub native_height: usize,
}Fields§
§width: usize§height: usize§cell: usize§cols: usize§rows: usize§split: Vec<f64>§evidence: Vec<f64>§activity: Vec<f64>§observations: Vec<f64>§row_fixed: Vec<f64>§row_moving: Vec<f64>§pixel_fixed: Vec<f64>row_fixed/row_moving per analysis pixel (y * width + x, only the sampled pixels ever count): how often
staying put explained the pixel better than the strongest moving model, and the other way round. A region
whose pixels are mostly the former is screen-fixed UI (regions::merge::freeze_stationary_regions).
pixel_moving: Vec<f64>§informative_frames: u32§row_change: Vec<f64>§col_change: Vec<f64>§col_moving: Vec<f64>Informative frames in which the column moved: its mean change over the sampled rows exceeded
MOVING_COLUMN. Unlike col_change, a few frames of large change (the whole window bouncing at the end of a
page) do not outweigh many frames of none.
col_mean: Vec<f64>§col_gain: Vec<f64>§horizontal_gain: Vec<f64>§native_row_change: Vec<f64>Native-resolution statistics, allocated on the first native pair.
native_col_change: Vec<f64>§native_col_mean: Vec<f64>§native_frames: u32§native_width: usize§native_height: usizeImplementations§
Source§impl Learner
impl Learner
pub fn new(width: usize, height: usize) -> Learner
Sourcepub fn add(
&mut self,
field: &Field<'_>,
prev: &[u8],
current: &[u8],
native: Option<(&[u8], &[u8], usize, usize)>,
) -> bool
pub fn add( &mut self, field: &Field<'_>, prev: &[u8], current: &[u8], native: Option<(&[u8], &[u8], usize, usize)>, ) -> bool
Adds one informative field. prev/current are analysis grays (width × height); the native pair is
optional and must share one size (a size change is ignored, as before). Returns false when the field was
not informative and nothing was accumulated.
Auto Trait Implementations§
impl Freeze for Learner
impl RefUnwindSafe for Learner
impl Send for Learner
impl Sync for Learner
impl Unpin for Learner
impl UnsafeUnpin for Learner
impl UnwindSafe for Learner
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> 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