Skip to main content

DistortionFixMask

Struct DistortionFixMask 

Source
pub struct DistortionFixMask {
    pub k1: bool,
    pub k2: bool,
    pub k3: bool,
    pub p1: bool,
    pub p2: bool,
}
Expand description

Mask for fixing distortion parameters during optimization.

Supports Brown-Conrady distortion model with:

  • Radial coefficients: k1, k2, k3
  • Tangential coefficients: p1, p2

Set a field to true to keep that parameter fixed during optimization.

§Default

By default, k3 is fixed because it often causes overfitting with typical calibration data. Only enable k3 optimization for wide-angle lenses or with high-quality calibration data.

§Example

use vision_calibration_core::DistortionFixMask;

// Default: k3 fixed, others free
let mask = DistortionFixMask::default();
assert!(!mask.k1);
assert!(mask.k3); // k3 fixed by default

// Fix tangential distortion
let mask = DistortionFixMask {
    p1: true,
    p2: true,
    ..Default::default()
};

Fields§

§k1: bool

Fix first radial distortion coefficient.

§k2: bool

Fix second radial distortion coefficient.

§k3: bool

Fix third radial distortion coefficient (fixed by default).

§p1: bool

Fix first tangential distortion coefficient.

§p2: bool

Fix second tangential distortion coefficient.

Implementations§

Source§

impl DistortionFixMask

Source

pub fn all_fixed() -> Self

Create a mask that fixes all distortion parameters.

Source

pub fn all_free() -> Self

Create a mask that allows all distortion parameters to be optimized.

Source

pub fn radial_only() -> Self

Create a mask that only allows radial distortion (k1, k2) to be optimized.

Fixes k3, p1, p2 - useful for standard lenses with minimal tangential distortion.

Source

pub fn any_fixed(&self) -> bool

Returns true if any parameter is fixed.

Source

pub fn all_are_fixed(&self) -> bool

Returns true if all parameters are fixed.

Source

pub fn to_indices(&self) -> Vec<usize>

Convert to a vector of fixed indices (for IR FixedMask).

Index mapping: k1=0, k2=1, k3=2, p1=3, p2=4

Trait Implementations§

Source§

impl Clone for DistortionFixMask

Source§

fn clone(&self) -> DistortionFixMask

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DistortionFixMask

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DistortionFixMask

Source§

fn default() -> Self

Default mask with k3 fixed to prevent overfitting.

Source§

impl<'de> Deserialize<'de> for DistortionFixMask

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for DistortionFixMask

Source§

fn eq(&self, other: &DistortionFixMask) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for DistortionFixMask

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for DistortionFixMask

Source§

impl Eq for DistortionFixMask

Source§

impl StructuralPartialEq for DistortionFixMask

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,