Skip to main content

AdaptiveThreshold

Struct AdaptiveThreshold 

Source
pub struct AdaptiveThreshold;
Expand description

自适应阈值计算器

Implementations§

Source§

impl AdaptiveThreshold

Source

pub fn calculate(view: &ArrayView2<'_, u8>, sigma: f32) -> (f32, f32)

基于图像直方图统计计算 Canny 高低阈值。

§分支策略
§极暗场景(中位数 <= 10)

大部分像素为背景黑色,中位数法失效,改用高百分位数法(p70/p85)。

§高亮背景场景(中位数 > 150)

典型真实照片:背景为白纸/浅色桌面,中位数反映背景亮度而非边缘强度。 进一步细分为极度高亮(动态范围 < 30 或高亮区集中度 < 10)和正常高亮两个子分支。

§正常场景(10 < 中位数 <= 150)

标准中位数法:low = (1-sigma)*median,high = (1+sigma)*median, 同时对 high 施加 200.0 的硬上限,防止边界情况产生过高阈值。

sigma 推荐值为 0.33。

Source

pub fn fast_median(view: &ArrayView2<'_, u8>) -> u8

辅助方法:快速计算近似中值(用于低功耗场景)。

以步长 4 采样,牺牲精度换取速度,适用于实时预览帧。

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

Source§

fn is_within(&self, b: &G2) -> bool