Trait opencv::hub_prelude::EdgeDrawing[][src]

pub trait EdgeDrawing: AlgorithmTrait {
    fn as_raw_EdgeDrawing(&self) -> *const c_void;
fn as_raw_mut_EdgeDrawing(&mut self) -> *mut c_void; fn params(&self) -> EdgeDrawing_Params { ... }
fn set_params(&mut self, val: EdgeDrawing_Params) { ... }
fn detect_edges(&mut self, src: &dyn ToInputArray) -> Result<()> { ... }
fn get_edge_image(&mut self, dst: &mut dyn ToOutputArray) -> Result<()> { ... }
fn get_gradient_image(&mut self, dst: &mut dyn ToOutputArray) -> Result<()> { ... }
fn get_segments(&mut self) -> Result<Vector<Vector<Point>>> { ... }
fn detect_lines(&mut self, lines: &mut dyn ToOutputArray) -> Result<()> { ... }
fn detect_ellipses(
        &mut self,
        ellipses: &mut dyn ToOutputArray
    ) -> Result<()> { ... }
fn set_params_1(&mut self, parameters: EdgeDrawing_Params) -> Result<()> { ... } }

Class implementing the ED (EdgeDrawing) topal2012edge, EDLines akinlar2011edlines, EDPF akinlar2012edpf and EDCircles akinlar2013edcircles algorithms

EDGE DRAWING LIBRARY FOR GEOMETRIC FEATURE EXTRACTION AND VALIDATION

Edge Drawing (ED) algorithm is an proactive approach on edge detection problem. In contrast to many other existing edge detection algorithms which follow a subtractive approach (i.e. after applying gradient filters onto an image eliminating pixels w.r.t. several rules, e.g. non-maximal suppression and hysteresis in Canny), ED algorithm works via an additive strategy, i.e. it picks edge pixels one by one, hence the name Edge Drawing. Then we process those random shaped edge segments to extract higher level edge features, i.e. lines, circles, ellipses, etc. The popular method of extraction edge pixels from the thresholded gradient magnitudes is non-maximal supressiun that tests every pixel whether it has the maximum gradient response along its gradient direction and eliminates if it does not. However, this method does not check status of the neighboring pixels, and therefore might result low quality (in terms of edge continuity, smoothness, thinness, localization) edge segments. Instead of non-maximal supression, ED points a set of edge pixels and join them by maximizing the total gradient response of edge segments. Therefore it can extract high quality edge segments without need for an additional hysteresis step.

Required methods

Loading content...

Provided methods

fn params(&self) -> EdgeDrawing_Params[src]

fn set_params(&mut self, val: EdgeDrawing_Params)[src]

fn detect_edges(&mut self, src: &dyn ToInputArray) -> Result<()>[src]

Detects edges and prepares them to detect lines and ellipses.

Parameters

  • src: input image

fn get_edge_image(&mut self, dst: &mut dyn ToOutputArray) -> Result<()>[src]

fn get_gradient_image(&mut self, dst: &mut dyn ToOutputArray) -> Result<()>[src]

fn get_segments(&mut self) -> Result<Vector<Vector<Point>>>[src]

fn detect_lines(&mut self, lines: &mut dyn ToOutputArray) -> Result<()>[src]

Detects lines.

Parameters

  • lines: output Vec<4f> contains start point and end point of detected lines.

Note: you should call detectEdges() method before call this.

fn detect_ellipses(&mut self, ellipses: &mut dyn ToOutputArray) -> Result<()>[src]

Detects circles and ellipses.

Parameters

  • ellipses: output Vec<6d> contains center point and perimeter for circles.

Note: you should call detectEdges() method before call this.

fn set_params_1(&mut self, parameters: EdgeDrawing_Params) -> Result<()>[src]

sets parameters.

this function is meant to be used for parameter setting in other languages than c++.

Loading content...

Implementors

Loading content...