[−][src]Struct cv::consensus::Arrsac
The ARRSAC algorithm for sample consensus.
Implementations
impl<R> Arrsac<R> where
R: RngCore,
[src]
R: RngCore,
pub fn new(inlier_threshold: f64, rng: R) -> Arrsac<R>
[src]
rng
should have the same properties you would want for a Monte Carlo simulation.
It should generate random numbers quickly without having any discernable patterns.
The inlier_threshold
is the one parameter that is always specific to your dataset.
This must be set to the threshold in which a data point's residual is considered an inlier.
Some of the other parameters may need to be configured based on the amount of data,
such as block_size
, likelyhood_ratio_threshold
, and block_size
. However,
inlier_threshold
has to be set based on the residual function used with the model.
pub fn max_candidate_hypotheses(
self,
max_candidate_hypotheses: usize
) -> Arrsac<R>
[src]
self,
max_candidate_hypotheses: usize
) -> Arrsac<R>
Number of hypotheses that will be generated for each block of data evaluated
Default: 50
pub fn block_size(self, block_size: usize) -> Arrsac<R>
[src]
Number of data points evaluated before more hypotheses are generated
Default: 100
pub fn max_delta_estimations(self, max_delta_estimations: usize) -> Arrsac<R>
[src]
Number of times that the entire dataset is compared against a bad model to see the probability of inliers in a bad model
Default: 4
pub fn likelyhood_ratio_threshold(
self,
likelyhood_ratio_threshold: f32
) -> Arrsac<R>
[src]
self,
likelyhood_ratio_threshold: f32
) -> Arrsac<R>
Once a model reaches this level of unlikelyhood, it is rejected. Set this higher to make it less restrictive, usually at the cost of more execution time.
Increasing this will make it more likely to find a good result (unless it is set very high).
Decreasing this will speed up execution.
This ratio is not exposed as a parameter in the original paper, but is instead computed recursively for a few iterations. It is roughly equivalent to the reciprocal of the probability of rejecting a good model. You can use that to control the probability that a good model is rejected.
Default: 1e6
pub fn initial_epsilon(self, initial_epsilon: f32) -> Arrsac<R>
[src]
Initial anticipated probability of an inlier being part of a good model
This is an estimation that will be updated as ARRSAC executes. The initial estimate is purposefully low, which will accept more models. As models are accepted, it will gradually increase it to match the best model found so far, which makes it more restrictive.
Default: 0.1
pub fn initial_delta(self, initial_delta: f32) -> Arrsac<R>
[src]
Initial anticipated probability of an inlier being part of a bad model
This is an estimation that will be updated as ARRSAC executes. The initial
estimate is almost certainly incorrect. This can be modified for different data
to get better/faster results. As models are rejected, it will update this value
until it has evaluated it max_delta_estimations
times.
Default: 0.05
pub fn inlier_threshold(self, inlier_threshold: f64) -> Arrsac<R>
[src]
Residual threshold for determining if a data point is an inlier or an outlier of a model
Trait Implementations
impl<E, R, Data> Consensus<E, Data> for Arrsac<R> where
E: Estimator<Data>,
R: RngCore,
[src]
E: Estimator<Data>,
R: RngCore,
type Inliers = Vec<usize>
Iterator over the indices of the inliers in the clonable iterator.
fn model<I>(
&mut self,
estimator: &E,
data: I
) -> Option<<E as Estimator<Data>>::Model> where
I: Iterator<Item = Data> + Clone,
[src]
&mut self,
estimator: &E,
data: I
) -> Option<<E as Estimator<Data>>::Model> where
I: Iterator<Item = Data> + Clone,
fn model_inliers<I>(
&mut self,
estimator: &E,
data: I
) -> Option<(<E as Estimator<Data>>::Model, <Arrsac<R> as Consensus<E, Data>>::Inliers)> where
I: Iterator<Item = Data> + Clone,
[src]
&mut self,
estimator: &E,
data: I
) -> Option<(<E as Estimator<Data>>::Model, <Arrsac<R> as Consensus<E, Data>>::Inliers)> where
I: Iterator<Item = Data> + Clone,
Auto Trait Implementations
impl<R> RefUnwindSafe for Arrsac<R> where
R: RefUnwindSafe,
R: RefUnwindSafe,
impl<R> Send for Arrsac<R> where
R: Send,
R: Send,
impl<R> Sync for Arrsac<R> where
R: Sync,
R: Sync,
impl<R> Unpin for Arrsac<R> where
R: Unpin,
R: Unpin,
impl<R> UnwindSafe for Arrsac<R> where
R: UnwindSafe,
R: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn is_in_subset(&self) -> bool
fn to_subset_unchecked(&self) -> SS
fn from_subset(element: &SS) -> SP
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,