opencv::features2d

Struct MSER

Source
pub struct MSER { /* private fields */ }
Expand description

Maximally stable extremal region extractor

The class encapsulates all the parameters of the %MSER extraction algorithm (see wiki article).

  • there are two different implementation of %MSER: one for grey image, one for color image

  • the grey image algorithm is taken from: nister2008linear ; the paper claims to be faster than union-find method; it actually get 1.5~2m/s on my centrino L7200 1.2GHz laptop.

  • the color image algorithm is taken from: forssen2007maximally ; it should be much slower than grey image method ( 3~4 times )

  • (Python) A complete example showing the use of the %MSER detector can be found at samples/python/mser.py

Implementations§

Source§

impl MSER

Source

pub fn create( delta: i32, min_area: i32, max_area: i32, max_variation: f64, min_diversity: f64, max_evolution: i32, area_threshold: f64, min_margin: f64, edge_blur_size: i32, ) -> Result<Ptr<MSER>>

Full constructor for %MSER detector

§Parameters
  • delta: it compares inline formula
  • min_area: prune the area which smaller than minArea
  • max_area: prune the area which bigger than maxArea
  • max_variation: prune the area have similar size to its children
  • min_diversity: for color image, trace back to cut off mser with diversity less than min_diversity
  • max_evolution: for color image, the evolution steps
  • area_threshold: for color image, the area threshold to cause re-initialize
  • min_margin: for color image, ignore too small margin
  • edge_blur_size: for color image, the aperture size for edge blur
§C++ default parameters
  • delta: 5
  • min_area: 60
  • max_area: 14400
  • max_variation: 0.25
  • min_diversity: .2
  • max_evolution: 200
  • area_threshold: 1.01
  • min_margin: 0.003
  • edge_blur_size: 5
Source

pub fn create_def() -> Result<Ptr<MSER>>

Full constructor for %MSER detector

§Parameters
  • delta: it compares inline formula
  • min_area: prune the area which smaller than minArea
  • max_area: prune the area which bigger than maxArea
  • max_variation: prune the area have similar size to its children
  • min_diversity: for color image, trace back to cut off mser with diversity less than min_diversity
  • max_evolution: for color image, the evolution steps
  • area_threshold: for color image, the area threshold to cause re-initialize
  • min_margin: for color image, ignore too small margin
  • edge_blur_size: for color image, the aperture size for edge blur
§Note

This alternative version of MSER::create function uses the following default values for its arguments:

  • delta: 5
  • min_area: 60
  • max_area: 14400
  • max_variation: 0.25
  • min_diversity: .2
  • max_evolution: 200
  • area_threshold: 1.01
  • min_margin: 0.003
  • edge_blur_size: 5

Trait Implementations§

Source§

impl AlgorithmTrait for MSER

Source§

fn as_raw_mut_Algorithm(&mut self) -> *mut c_void

Source§

fn clear(&mut self) -> Result<()>

Clears the algorithm state
Source§

fn read(&mut self, fn_: &impl FileNodeTraitConst) -> Result<()>

Reads algorithm parameters from a file storage
Source§

impl AlgorithmTraitConst for MSER

Source§

fn as_raw_Algorithm(&self) -> *const c_void

Source§

fn write(&self, fs: &mut impl FileStorageTrait) -> Result<()>

Stores algorithm parameters in a file storage
Source§

fn write_1(&self, fs: &mut impl FileStorageTrait, name: &str) -> Result<()>

Stores algorithm parameters in a file storage Read more
Source§

fn write_with_name(&self, fs: &Ptr<FileStorage>, name: &str) -> Result<()>

@deprecated Read more
Source§

fn write_with_name_def(&self, fs: &Ptr<FileStorage>) -> Result<()>

👎Deprecated:

§Note

Deprecated: ## Note This alternative version of AlgorithmTraitConst::write_with_name function uses the following default values for its arguments: Read more
Source§

fn empty(&self) -> Result<bool>

Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read
Source§

fn save(&self, filename: &str) -> Result<()>

Saves the algorithm to a file. In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).
Source§

fn get_default_name(&self) -> Result<String>

Returns the algorithm string identifier. This string is used as top level xml/yml node tag when the object is saved to a file or string.
Source§

impl Boxed for MSER

Source§

unsafe fn from_raw(ptr: <MSER as OpenCVFromExtern>::ExternReceive) -> Self

Wrap the specified raw pointer Read more
Source§

fn into_raw(self) -> <MSER as OpenCVTypeExternContainer>::ExternSendMut

Return the underlying raw pointer while consuming this wrapper. Read more
Source§

fn as_raw(&self) -> <MSER as OpenCVTypeExternContainer>::ExternSend

Return the underlying raw pointer. Read more
Source§

fn as_raw_mut(&mut self) -> <MSER as OpenCVTypeExternContainer>::ExternSendMut

Return the underlying mutable raw pointer Read more
Source§

impl Debug for MSER

Source§

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

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

impl Drop for MSER

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Feature2DTrait for MSER

Source§

fn as_raw_mut_Feature2D(&mut self) -> *mut c_void

Source§

fn detect( &mut self, image: &impl ToInputArray, keypoints: &mut Vector<KeyPoint>, mask: &impl ToInputArray, ) -> Result<()>

Detects keypoints in an image (first variant) or image set (second variant). Read more
Source§

fn detect_def( &mut self, image: &impl ToInputArray, keypoints: &mut Vector<KeyPoint>, ) -> Result<()>

Detects keypoints in an image (first variant) or image set (second variant). Read more
Source§

fn detect_multiple( &mut self, images: &impl ToInputArray, keypoints: &mut Vector<Vector<KeyPoint>>, masks: &impl ToInputArray, ) -> Result<()>

Detects keypoints in an image (first variant) or image set (second variant). Read more
Source§

fn detect_multiple_def( &mut self, images: &impl ToInputArray, keypoints: &mut Vector<Vector<KeyPoint>>, ) -> Result<()>

@overload Read more
Source§

fn compute( &mut self, image: &impl ToInputArray, keypoints: &mut Vector<KeyPoint>, descriptors: &mut impl ToOutputArray, ) -> Result<()>

Computes the descriptors for a set of keypoints detected in an image (first variant) or image set (second variant). Read more
Source§

fn compute_multiple( &mut self, images: &impl ToInputArray, keypoints: &mut Vector<Vector<KeyPoint>>, descriptors: &mut impl ToOutputArray, ) -> Result<()>

Computes the descriptors for a set of keypoints detected in an image (first variant) or image set (second variant). Read more
Source§

fn detect_and_compute( &mut self, image: &impl ToInputArray, mask: &impl ToInputArray, keypoints: &mut Vector<KeyPoint>, descriptors: &mut impl ToOutputArray, use_provided_keypoints: bool, ) -> Result<()>

Detects keypoints and computes the descriptors Read more
Source§

fn detect_and_compute_def( &mut self, image: &impl ToInputArray, mask: &impl ToInputArray, keypoints: &mut Vector<KeyPoint>, descriptors: &mut impl ToOutputArray, ) -> Result<()>

Detects keypoints and computes the descriptors Read more
Source§

fn read(&mut self, file_name: &str) -> Result<()>

Source§

fn read_from_node(&mut self, unnamed: &impl FileNodeTraitConst) -> Result<()>

Source§

impl Feature2DTraitConst for MSER

Source§

fn as_raw_Feature2D(&self) -> *const c_void

Source§

fn descriptor_size(&self) -> Result<i32>

Source§

fn descriptor_type(&self) -> Result<i32>

Source§

fn default_norm(&self) -> Result<i32>

Source§

fn write(&self, file_name: &str) -> Result<()>

Source§

fn write_to_storage(&self, unnamed: &mut impl FileStorageTrait) -> Result<()>

Source§

fn empty(&self) -> Result<bool>

Return true if detector object is empty
Source§

fn get_default_name(&self) -> Result<String>

Source§

fn write_to_storage_with_name( &self, fs: &mut impl FileStorageTrait, name: &str, ) -> Result<()>

Source§

fn write_to_storage_ptr_with_name( &self, fs: &Ptr<FileStorage>, name: &str, ) -> Result<()>

Source§

impl From<MSER> for Algorithm

Source§

fn from(s: MSER) -> Self

Converts to this type from the input type.
Source§

impl From<MSER> for Feature2D

Source§

fn from(s: MSER) -> Self

Converts to this type from the input type.
Source§

impl MSERTrait for MSER

Source§

fn as_raw_mut_MSER(&mut self) -> *mut c_void

Source§

fn detect_regions( &mut self, image: &impl ToInputArray, msers: &mut Vector<Vector<Point>>, bboxes: &mut Vector<Rect>, ) -> Result<()>

Detect %MSER regions Read more
Source§

fn set_delta(&mut self, delta: i32) -> Result<()>

Source§

fn set_min_area(&mut self, min_area: i32) -> Result<()>

Source§

fn set_max_area(&mut self, max_area: i32) -> Result<()>

Source§

fn set_max_variation(&mut self, max_variation: f64) -> Result<()>

Source§

fn set_min_diversity(&mut self, min_diversity: f64) -> Result<()>

Source§

fn set_max_evolution(&mut self, max_evolution: i32) -> Result<()>

Source§

fn set_area_threshold(&mut self, area_threshold: f64) -> Result<()>

Source§

fn set_min_margin(&mut self, min_margin: f64) -> Result<()>

Source§

fn set_edge_blur_size(&mut self, edge_blur_size: i32) -> Result<()>

Source§

fn set_pass2_only(&mut self, f: bool) -> Result<()>

Source§

impl MSERTraitConst for MSER

Source§

impl TryFrom<Feature2D> for MSER

Source§

type Error = Error

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

fn try_from(s: Feature2D) -> Result<Self>

Performs the conversion.
Source§

impl Send for MSER

Auto Trait Implementations§

§

impl Freeze for MSER

§

impl RefUnwindSafe for MSER

§

impl !Sync for MSER

§

impl Unpin for MSER

§

impl UnwindSafe for MSER

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<Mat> ModifyInplace for Mat
where Mat: Boxed,

Source§

unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res, ) -> Res

Helper function to call OpenCV functions that allow in-place modification of a Mat or another similar object. By passing a mutable reference to the Mat to this function your closure will get called with the read reference and a write references to the same Mat. This is unsafe in a general case as it leads to having non-exclusive mutable access to the internal data, but it can be useful for some performance sensitive operations. One example of an OpenCV function that allows such in-place modification is imgproc::threshold. 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.