pub mod video {
use crate::{mod_prelude::*, core, sys, types};
pub mod prelude {
pub use { super::KalmanFilterTraitConst, super::KalmanFilterTrait, super::DenseOpticalFlowTraitConst, super::DenseOpticalFlowTrait, super::SparseOpticalFlowTraitConst, super::SparseOpticalFlowTrait, super::FarnebackOpticalFlowTraitConst, super::FarnebackOpticalFlowTrait, super::VariationalRefinementTraitConst, super::VariationalRefinementTrait, super::DISOpticalFlowTraitConst, super::DISOpticalFlowTrait, super::SparsePyrLKOpticalFlowTraitConst, super::SparsePyrLKOpticalFlowTrait, super::TrackerTraitConst, super::TrackerTrait, super::TrackerMILTraitConst, super::TrackerMILTrait, super::TrackerGOTURN_ParamsTraitConst, super::TrackerGOTURN_ParamsTrait, super::TrackerGOTURNTraitConst, super::TrackerGOTURNTrait, super::TrackerDaSiamRPN_ParamsTraitConst, super::TrackerDaSiamRPN_ParamsTrait, super::TrackerDaSiamRPNTraitConst, super::TrackerDaSiamRPNTrait, super::TrackerNano_ParamsTraitConst, super::TrackerNano_ParamsTrait, super::TrackerNanoTraitConst, super::TrackerNanoTrait, super::BackgroundSubtractorTraitConst, super::BackgroundSubtractorTrait, super::BackgroundSubtractorMOG2TraitConst, super::BackgroundSubtractorMOG2Trait, super::BackgroundSubtractorKNNTraitConst, super::BackgroundSubtractorKNNTrait };
}
pub const DISOpticalFlow_PRESET_FAST: i32 = 1;
pub const DISOpticalFlow_PRESET_MEDIUM: i32 = 2;
pub const DISOpticalFlow_PRESET_ULTRAFAST: i32 = 0;
pub const MOTION_AFFINE: i32 = 2;
pub const MOTION_EUCLIDEAN: i32 = 1;
pub const MOTION_HOMOGRAPHY: i32 = 3;
pub const MOTION_TRANSLATION: i32 = 0;
pub const OPTFLOW_FARNEBACK_GAUSSIAN: i32 = 256;
pub const OPTFLOW_LK_GET_MIN_EIGENVALS: i32 = 8;
pub const OPTFLOW_USE_INITIAL_FLOW: i32 = 4;
#[inline]
pub fn cam_shift(prob_image: &impl core::ToInputArray, window: &mut core::Rect, criteria: core::TermCriteria) -> Result<core::RotatedRect> {
input_array_arg!(prob_image);
return_send!(via ocvrs_return);
unsafe { sys::cv_CamShift_const__InputArrayR_RectR_TermCriteria(prob_image.as_raw__InputArray(), window, criteria.opencv_as_extern(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
pub fn build_optical_flow_pyramid(img: &impl core::ToInputArray, pyramid: &mut impl core::ToOutputArray, win_size: core::Size, max_level: i32, with_derivatives: bool, pyr_border: i32, deriv_border: i32, try_reuse_input_image: bool) -> Result<i32> {
input_array_arg!(img);
output_array_arg!(pyramid);
return_send!(via ocvrs_return);
unsafe { sys::cv_buildOpticalFlowPyramid_const__InputArrayR_const__OutputArrayR_Size_int_bool_int_int_bool(img.as_raw__InputArray(), pyramid.as_raw__OutputArray(), win_size.opencv_as_extern(), max_level, with_derivatives, pyr_border, deriv_border, try_reuse_input_image, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
pub fn calc_optical_flow_farneback(prev: &impl core::ToInputArray, next: &impl core::ToInputArray, flow: &mut impl core::ToInputOutputArray, pyr_scale: f64, levels: i32, winsize: i32, iterations: i32, poly_n: i32, poly_sigma: f64, flags: i32) -> Result<()> {
input_array_arg!(prev);
input_array_arg!(next);
input_output_array_arg!(flow);
return_send!(via ocvrs_return);
unsafe { sys::cv_calcOpticalFlowFarneback_const__InputArrayR_const__InputArrayR_const__InputOutputArrayR_double_int_int_int_int_double_int(prev.as_raw__InputArray(), next.as_raw__InputArray(), flow.as_raw__InputOutputArray(), pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
pub fn calc_optical_flow_pyr_lk(prev_img: &impl core::ToInputArray, next_img: &impl core::ToInputArray, prev_pts: &impl core::ToInputArray, next_pts: &mut impl core::ToInputOutputArray, status: &mut impl core::ToOutputArray, err: &mut impl core::ToOutputArray, win_size: core::Size, max_level: i32, criteria: core::TermCriteria, flags: i32, min_eig_threshold: f64) -> Result<()> {
input_array_arg!(prev_img);
input_array_arg!(next_img);
input_array_arg!(prev_pts);
input_output_array_arg!(next_pts);
output_array_arg!(status);
output_array_arg!(err);
return_send!(via ocvrs_return);
unsafe { sys::cv_calcOpticalFlowPyrLK_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputOutputArrayR_const__OutputArrayR_const__OutputArrayR_Size_int_TermCriteria_int_double(prev_img.as_raw__InputArray(), next_img.as_raw__InputArray(), prev_pts.as_raw__InputArray(), next_pts.as_raw__InputOutputArray(), status.as_raw__OutputArray(), err.as_raw__OutputArray(), win_size.opencv_as_extern(), max_level, criteria.opencv_as_extern(), flags, min_eig_threshold, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
pub fn compute_ecc(template_image: &impl core::ToInputArray, input_image: &impl core::ToInputArray, input_mask: &impl core::ToInputArray) -> Result<f64> {
input_array_arg!(template_image);
input_array_arg!(input_image);
input_array_arg!(input_mask);
return_send!(via ocvrs_return);
unsafe { sys::cv_computeECC_const__InputArrayR_const__InputArrayR_const__InputArrayR(template_image.as_raw__InputArray(), input_image.as_raw__InputArray(), input_mask.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
pub fn create_background_subtractor_knn(history: i32, dist2_threshold: f64, detect_shadows: bool) -> Result<core::Ptr<crate::video::BackgroundSubtractorKNN>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_createBackgroundSubtractorKNN_int_double_bool(history, dist2_threshold, detect_shadows, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::video::BackgroundSubtractorKNN>::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
pub fn create_background_subtractor_mog2(history: i32, var_threshold: f64, detect_shadows: bool) -> Result<core::Ptr<crate::video::BackgroundSubtractorMOG2>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_createBackgroundSubtractorMOG2_int_double_bool(history, var_threshold, detect_shadows, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::video::BackgroundSubtractorMOG2>::opencv_from_extern(ret) };
Ok(ret)
}
#[deprecated = "Use cv::estimateAffine2D, cv::estimateAffinePartial2D instead. If you are using this function"]
#[inline]
pub fn estimate_rigid_transform(src: &impl core::ToInputArray, dst: &impl core::ToInputArray, full_affine: bool) -> Result<core::Mat> {
input_array_arg!(src);
input_array_arg!(dst);
return_send!(via ocvrs_return);
unsafe { sys::cv_estimateRigidTransform_const__InputArrayR_const__InputArrayR_bool(src.as_raw__InputArray(), dst.as_raw__InputArray(), full_affine, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
pub fn find_transform_ecc_1(template_image: &impl core::ToInputArray, input_image: &impl core::ToInputArray, warp_matrix: &mut impl core::ToInputOutputArray, motion_type: i32, criteria: core::TermCriteria, input_mask: &impl core::ToInputArray) -> Result<f64> {
input_array_arg!(template_image);
input_array_arg!(input_image);
input_output_array_arg!(warp_matrix);
input_array_arg!(input_mask);
return_send!(via ocvrs_return);
unsafe { sys::cv_findTransformECC_const__InputArrayR_const__InputArrayR_const__InputOutputArrayR_int_TermCriteria_const__InputArrayR(template_image.as_raw__InputArray(), input_image.as_raw__InputArray(), warp_matrix.as_raw__InputOutputArray(), motion_type, criteria.opencv_as_extern(), input_mask.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
pub fn find_transform_ecc(template_image: &impl core::ToInputArray, input_image: &impl core::ToInputArray, warp_matrix: &mut impl core::ToInputOutputArray, motion_type: i32, criteria: core::TermCriteria, input_mask: &impl core::ToInputArray, gauss_filt_size: i32) -> Result<f64> {
input_array_arg!(template_image);
input_array_arg!(input_image);
input_output_array_arg!(warp_matrix);
input_array_arg!(input_mask);
return_send!(via ocvrs_return);
unsafe { sys::cv_findTransformECC_const__InputArrayR_const__InputArrayR_const__InputOutputArrayR_int_TermCriteria_const__InputArrayR_int(template_image.as_raw__InputArray(), input_image.as_raw__InputArray(), warp_matrix.as_raw__InputOutputArray(), motion_type, criteria.opencv_as_extern(), input_mask.as_raw__InputArray(), gauss_filt_size, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
pub fn mean_shift(prob_image: &impl core::ToInputArray, window: &mut core::Rect, criteria: core::TermCriteria) -> Result<i32> {
input_array_arg!(prob_image);
return_send!(via ocvrs_return);
unsafe { sys::cv_meanShift_const__InputArrayR_RectR_TermCriteria(prob_image.as_raw__InputArray(), window, criteria.opencv_as_extern(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
pub fn read_optical_flow(path: &str) -> Result<core::Mat> {
extern_container_arg!(path);
return_send!(via ocvrs_return);
unsafe { sys::cv_readOpticalFlow_const_StringR(path.opencv_as_extern(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
pub fn write_optical_flow(path: &str, flow: &impl core::ToInputArray) -> Result<bool> {
extern_container_arg!(path);
input_array_arg!(flow);
return_send!(via ocvrs_return);
unsafe { sys::cv_writeOpticalFlow_const_StringR_const__InputArrayR(path.opencv_as_extern(), flow.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
pub trait BackgroundSubtractorTraitConst: core::AlgorithmTraitConst {
fn as_raw_BackgroundSubtractor(&self) -> *const c_void;
#[inline]
fn get_background_image(&self, background_image: &mut impl core::ToOutputArray) -> Result<()> {
output_array_arg!(background_image);
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractor_getBackgroundImage_const_const__OutputArrayR(self.as_raw_BackgroundSubtractor(), background_image.as_raw__OutputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait BackgroundSubtractorTrait: core::AlgorithmTrait + crate::video::BackgroundSubtractorTraitConst {
fn as_raw_mut_BackgroundSubtractor(&mut self) -> *mut c_void;
#[inline]
fn apply(&mut self, image: &impl core::ToInputArray, fgmask: &mut impl core::ToOutputArray, learning_rate: f64) -> Result<()> {
input_array_arg!(image);
output_array_arg!(fgmask);
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractor_apply_const__InputArrayR_const__OutputArrayR_double(self.as_raw_mut_BackgroundSubtractor(), image.as_raw__InputArray(), fgmask.as_raw__OutputArray(), learning_rate, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct BackgroundSubtractor {
ptr: *mut c_void
}
opencv_type_boxed! { BackgroundSubtractor }
impl Drop for BackgroundSubtractor {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_BackgroundSubtractor_delete(instance: *mut c_void); }
unsafe { cv_BackgroundSubtractor_delete(self.as_raw_mut_BackgroundSubtractor()) };
}
}
unsafe impl Send for BackgroundSubtractor {}
impl core::AlgorithmTraitConst for BackgroundSubtractor {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for BackgroundSubtractor {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::BackgroundSubtractorTraitConst for BackgroundSubtractor {
#[inline] fn as_raw_BackgroundSubtractor(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::BackgroundSubtractorTrait for BackgroundSubtractor {
#[inline] fn as_raw_mut_BackgroundSubtractor(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl BackgroundSubtractor {
}
boxed_cast_descendant! { BackgroundSubtractor, crate::video::BackgroundSubtractorKNN, cv_BackgroundSubtractor_to_BackgroundSubtractorKNN }
boxed_cast_descendant! { BackgroundSubtractor, crate::video::BackgroundSubtractorMOG2, cv_BackgroundSubtractor_to_BackgroundSubtractorMOG2 }
boxed_cast_base! { BackgroundSubtractor, core::Algorithm, cv_BackgroundSubtractor_to_Algorithm }
impl std::fmt::Debug for BackgroundSubtractor {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("BackgroundSubtractor")
.finish()
}
}
pub trait BackgroundSubtractorKNNTraitConst: crate::video::BackgroundSubtractorTraitConst {
fn as_raw_BackgroundSubtractorKNN(&self) -> *const c_void;
#[inline]
fn get_history(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_getHistory_const(self.as_raw_BackgroundSubtractorKNN(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_n_samples(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_getNSamples_const(self.as_raw_BackgroundSubtractorKNN(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_dist2_threshold(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_getDist2Threshold_const(self.as_raw_BackgroundSubtractorKNN(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn getk_nn_samples(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_getkNNSamples_const(self.as_raw_BackgroundSubtractorKNN(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_detect_shadows(&self) -> Result<bool> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_getDetectShadows_const(self.as_raw_BackgroundSubtractorKNN(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_shadow_value(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_getShadowValue_const(self.as_raw_BackgroundSubtractorKNN(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_shadow_threshold(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_getShadowThreshold_const(self.as_raw_BackgroundSubtractorKNN(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait BackgroundSubtractorKNNTrait: crate::video::BackgroundSubtractorKNNTraitConst + crate::video::BackgroundSubtractorTrait {
fn as_raw_mut_BackgroundSubtractorKNN(&mut self) -> *mut c_void;
#[inline]
fn set_history(&mut self, history: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_setHistory_int(self.as_raw_mut_BackgroundSubtractorKNN(), history, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_n_samples(&mut self, _n_n: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_setNSamples_int(self.as_raw_mut_BackgroundSubtractorKNN(), _n_n, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_dist2_threshold(&mut self, _dist2_threshold: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_setDist2Threshold_double(self.as_raw_mut_BackgroundSubtractorKNN(), _dist2_threshold, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn setk_nn_samples(&mut self, _nk_nn: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_setkNNSamples_int(self.as_raw_mut_BackgroundSubtractorKNN(), _nk_nn, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_detect_shadows(&mut self, detect_shadows: bool) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_setDetectShadows_bool(self.as_raw_mut_BackgroundSubtractorKNN(), detect_shadows, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_shadow_value(&mut self, value: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_setShadowValue_int(self.as_raw_mut_BackgroundSubtractorKNN(), value, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_shadow_threshold(&mut self, threshold: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorKNN_setShadowThreshold_double(self.as_raw_mut_BackgroundSubtractorKNN(), threshold, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct BackgroundSubtractorKNN {
ptr: *mut c_void
}
opencv_type_boxed! { BackgroundSubtractorKNN }
impl Drop for BackgroundSubtractorKNN {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_BackgroundSubtractorKNN_delete(instance: *mut c_void); }
unsafe { cv_BackgroundSubtractorKNN_delete(self.as_raw_mut_BackgroundSubtractorKNN()) };
}
}
unsafe impl Send for BackgroundSubtractorKNN {}
impl core::AlgorithmTraitConst for BackgroundSubtractorKNN {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for BackgroundSubtractorKNN {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::BackgroundSubtractorTraitConst for BackgroundSubtractorKNN {
#[inline] fn as_raw_BackgroundSubtractor(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::BackgroundSubtractorTrait for BackgroundSubtractorKNN {
#[inline] fn as_raw_mut_BackgroundSubtractor(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::BackgroundSubtractorKNNTraitConst for BackgroundSubtractorKNN {
#[inline] fn as_raw_BackgroundSubtractorKNN(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::BackgroundSubtractorKNNTrait for BackgroundSubtractorKNN {
#[inline] fn as_raw_mut_BackgroundSubtractorKNN(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl BackgroundSubtractorKNN {
}
boxed_cast_base! { BackgroundSubtractorKNN, core::Algorithm, cv_BackgroundSubtractorKNN_to_Algorithm }
boxed_cast_base! { BackgroundSubtractorKNN, crate::video::BackgroundSubtractor, cv_BackgroundSubtractorKNN_to_BackgroundSubtractor }
impl std::fmt::Debug for BackgroundSubtractorKNN {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("BackgroundSubtractorKNN")
.finish()
}
}
pub trait BackgroundSubtractorMOG2TraitConst: crate::video::BackgroundSubtractorTraitConst {
fn as_raw_BackgroundSubtractorMOG2(&self) -> *const c_void;
#[inline]
fn get_history(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getHistory_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_n_mixtures(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getNMixtures_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_background_ratio(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getBackgroundRatio_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_var_threshold(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getVarThreshold_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_var_threshold_gen(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getVarThresholdGen_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_var_init(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getVarInit_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_var_min(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getVarMin_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_var_max(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getVarMax_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_complexity_reduction_threshold(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getComplexityReductionThreshold_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_detect_shadows(&self) -> Result<bool> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getDetectShadows_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_shadow_value(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getShadowValue_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_shadow_threshold(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_getShadowThreshold_const(self.as_raw_BackgroundSubtractorMOG2(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait BackgroundSubtractorMOG2Trait: crate::video::BackgroundSubtractorMOG2TraitConst + crate::video::BackgroundSubtractorTrait {
fn as_raw_mut_BackgroundSubtractorMOG2(&mut self) -> *mut c_void;
#[inline]
fn set_history(&mut self, history: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setHistory_int(self.as_raw_mut_BackgroundSubtractorMOG2(), history, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_n_mixtures(&mut self, nmixtures: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setNMixtures_int(self.as_raw_mut_BackgroundSubtractorMOG2(), nmixtures, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_background_ratio(&mut self, ratio: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setBackgroundRatio_double(self.as_raw_mut_BackgroundSubtractorMOG2(), ratio, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_var_threshold(&mut self, var_threshold: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setVarThreshold_double(self.as_raw_mut_BackgroundSubtractorMOG2(), var_threshold, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_var_threshold_gen(&mut self, var_threshold_gen: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setVarThresholdGen_double(self.as_raw_mut_BackgroundSubtractorMOG2(), var_threshold_gen, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_var_init(&mut self, var_init: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setVarInit_double(self.as_raw_mut_BackgroundSubtractorMOG2(), var_init, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_var_min(&mut self, var_min: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setVarMin_double(self.as_raw_mut_BackgroundSubtractorMOG2(), var_min, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_var_max(&mut self, var_max: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setVarMax_double(self.as_raw_mut_BackgroundSubtractorMOG2(), var_max, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_complexity_reduction_threshold(&mut self, ct: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setComplexityReductionThreshold_double(self.as_raw_mut_BackgroundSubtractorMOG2(), ct, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_detect_shadows(&mut self, detect_shadows: bool) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setDetectShadows_bool(self.as_raw_mut_BackgroundSubtractorMOG2(), detect_shadows, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_shadow_value(&mut self, value: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setShadowValue_int(self.as_raw_mut_BackgroundSubtractorMOG2(), value, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_shadow_threshold(&mut self, threshold: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_setShadowThreshold_double(self.as_raw_mut_BackgroundSubtractorMOG2(), threshold, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn apply(&mut self, image: &impl core::ToInputArray, fgmask: &mut impl core::ToOutputArray, learning_rate: f64) -> Result<()> {
input_array_arg!(image);
output_array_arg!(fgmask);
return_send!(via ocvrs_return);
unsafe { sys::cv_BackgroundSubtractorMOG2_apply_const__InputArrayR_const__OutputArrayR_double(self.as_raw_mut_BackgroundSubtractorMOG2(), image.as_raw__InputArray(), fgmask.as_raw__OutputArray(), learning_rate, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct BackgroundSubtractorMOG2 {
ptr: *mut c_void
}
opencv_type_boxed! { BackgroundSubtractorMOG2 }
impl Drop for BackgroundSubtractorMOG2 {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_BackgroundSubtractorMOG2_delete(instance: *mut c_void); }
unsafe { cv_BackgroundSubtractorMOG2_delete(self.as_raw_mut_BackgroundSubtractorMOG2()) };
}
}
unsafe impl Send for BackgroundSubtractorMOG2 {}
impl core::AlgorithmTraitConst for BackgroundSubtractorMOG2 {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for BackgroundSubtractorMOG2 {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::BackgroundSubtractorTraitConst for BackgroundSubtractorMOG2 {
#[inline] fn as_raw_BackgroundSubtractor(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::BackgroundSubtractorTrait for BackgroundSubtractorMOG2 {
#[inline] fn as_raw_mut_BackgroundSubtractor(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::BackgroundSubtractorMOG2TraitConst for BackgroundSubtractorMOG2 {
#[inline] fn as_raw_BackgroundSubtractorMOG2(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::BackgroundSubtractorMOG2Trait for BackgroundSubtractorMOG2 {
#[inline] fn as_raw_mut_BackgroundSubtractorMOG2(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl BackgroundSubtractorMOG2 {
}
boxed_cast_base! { BackgroundSubtractorMOG2, core::Algorithm, cv_BackgroundSubtractorMOG2_to_Algorithm }
boxed_cast_base! { BackgroundSubtractorMOG2, crate::video::BackgroundSubtractor, cv_BackgroundSubtractorMOG2_to_BackgroundSubtractor }
impl std::fmt::Debug for BackgroundSubtractorMOG2 {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("BackgroundSubtractorMOG2")
.finish()
}
}
pub trait DISOpticalFlowTraitConst: crate::video::DenseOpticalFlowTraitConst {
fn as_raw_DISOpticalFlow(&self) -> *const c_void;
#[inline]
fn get_finest_scale(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_getFinestScale_const(self.as_raw_DISOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_patch_size(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_getPatchSize_const(self.as_raw_DISOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_patch_stride(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_getPatchStride_const(self.as_raw_DISOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_gradient_descent_iterations(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_getGradientDescentIterations_const(self.as_raw_DISOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_variational_refinement_iterations(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_getVariationalRefinementIterations_const(self.as_raw_DISOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_variational_refinement_alpha(&self) -> Result<f32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_getVariationalRefinementAlpha_const(self.as_raw_DISOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_variational_refinement_delta(&self) -> Result<f32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_getVariationalRefinementDelta_const(self.as_raw_DISOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_variational_refinement_gamma(&self) -> Result<f32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_getVariationalRefinementGamma_const(self.as_raw_DISOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_use_mean_normalization(&self) -> Result<bool> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_getUseMeanNormalization_const(self.as_raw_DISOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_use_spatial_propagation(&self) -> Result<bool> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_getUseSpatialPropagation_const(self.as_raw_DISOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait DISOpticalFlowTrait: crate::video::DISOpticalFlowTraitConst + crate::video::DenseOpticalFlowTrait {
fn as_raw_mut_DISOpticalFlow(&mut self) -> *mut c_void;
#[inline]
fn set_finest_scale(&mut self, val: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_setFinestScale_int(self.as_raw_mut_DISOpticalFlow(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_patch_size(&mut self, val: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_setPatchSize_int(self.as_raw_mut_DISOpticalFlow(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_patch_stride(&mut self, val: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_setPatchStride_int(self.as_raw_mut_DISOpticalFlow(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_gradient_descent_iterations(&mut self, val: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_setGradientDescentIterations_int(self.as_raw_mut_DISOpticalFlow(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_variational_refinement_iterations(&mut self, val: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_setVariationalRefinementIterations_int(self.as_raw_mut_DISOpticalFlow(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_variational_refinement_alpha(&mut self, val: f32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_setVariationalRefinementAlpha_float(self.as_raw_mut_DISOpticalFlow(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_variational_refinement_delta(&mut self, val: f32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_setVariationalRefinementDelta_float(self.as_raw_mut_DISOpticalFlow(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_variational_refinement_gamma(&mut self, val: f32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_setVariationalRefinementGamma_float(self.as_raw_mut_DISOpticalFlow(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_use_mean_normalization(&mut self, val: bool) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_setUseMeanNormalization_bool(self.as_raw_mut_DISOpticalFlow(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_use_spatial_propagation(&mut self, val: bool) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_setUseSpatialPropagation_bool(self.as_raw_mut_DISOpticalFlow(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct DISOpticalFlow {
ptr: *mut c_void
}
opencv_type_boxed! { DISOpticalFlow }
impl Drop for DISOpticalFlow {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_DISOpticalFlow_delete(instance: *mut c_void); }
unsafe { cv_DISOpticalFlow_delete(self.as_raw_mut_DISOpticalFlow()) };
}
}
unsafe impl Send for DISOpticalFlow {}
impl core::AlgorithmTraitConst for DISOpticalFlow {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for DISOpticalFlow {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::DenseOpticalFlowTraitConst for DISOpticalFlow {
#[inline] fn as_raw_DenseOpticalFlow(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::DenseOpticalFlowTrait for DISOpticalFlow {
#[inline] fn as_raw_mut_DenseOpticalFlow(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::DISOpticalFlowTraitConst for DISOpticalFlow {
#[inline] fn as_raw_DISOpticalFlow(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::DISOpticalFlowTrait for DISOpticalFlow {
#[inline] fn as_raw_mut_DISOpticalFlow(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl DISOpticalFlow {
#[inline]
pub fn create(preset: i32) -> Result<core::Ptr<crate::video::DISOpticalFlow>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DISOpticalFlow_create_int(preset, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::video::DISOpticalFlow>::opencv_from_extern(ret) };
Ok(ret)
}
}
boxed_cast_base! { DISOpticalFlow, core::Algorithm, cv_DISOpticalFlow_to_Algorithm }
boxed_cast_base! { DISOpticalFlow, crate::video::DenseOpticalFlow, cv_DISOpticalFlow_to_DenseOpticalFlow }
impl std::fmt::Debug for DISOpticalFlow {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("DISOpticalFlow")
.finish()
}
}
pub trait DenseOpticalFlowTraitConst: core::AlgorithmTraitConst {
fn as_raw_DenseOpticalFlow(&self) -> *const c_void;
}
pub trait DenseOpticalFlowTrait: core::AlgorithmTrait + crate::video::DenseOpticalFlowTraitConst {
fn as_raw_mut_DenseOpticalFlow(&mut self) -> *mut c_void;
#[inline]
fn calc(&mut self, i0: &impl core::ToInputArray, i1: &impl core::ToInputArray, flow: &mut impl core::ToInputOutputArray) -> Result<()> {
input_array_arg!(i0);
input_array_arg!(i1);
input_output_array_arg!(flow);
return_send!(via ocvrs_return);
unsafe { sys::cv_DenseOpticalFlow_calc_const__InputArrayR_const__InputArrayR_const__InputOutputArrayR(self.as_raw_mut_DenseOpticalFlow(), i0.as_raw__InputArray(), i1.as_raw__InputArray(), flow.as_raw__InputOutputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn collect_garbage(&mut self) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_DenseOpticalFlow_collectGarbage(self.as_raw_mut_DenseOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct DenseOpticalFlow {
ptr: *mut c_void
}
opencv_type_boxed! { DenseOpticalFlow }
impl Drop for DenseOpticalFlow {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_DenseOpticalFlow_delete(instance: *mut c_void); }
unsafe { cv_DenseOpticalFlow_delete(self.as_raw_mut_DenseOpticalFlow()) };
}
}
unsafe impl Send for DenseOpticalFlow {}
impl core::AlgorithmTraitConst for DenseOpticalFlow {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for DenseOpticalFlow {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::DenseOpticalFlowTraitConst for DenseOpticalFlow {
#[inline] fn as_raw_DenseOpticalFlow(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::DenseOpticalFlowTrait for DenseOpticalFlow {
#[inline] fn as_raw_mut_DenseOpticalFlow(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl DenseOpticalFlow {
}
boxed_cast_descendant! { DenseOpticalFlow, crate::video::DISOpticalFlow, cv_DenseOpticalFlow_to_DISOpticalFlow }
boxed_cast_descendant! { DenseOpticalFlow, crate::video::FarnebackOpticalFlow, cv_DenseOpticalFlow_to_FarnebackOpticalFlow }
boxed_cast_descendant! { DenseOpticalFlow, crate::video::VariationalRefinement, cv_DenseOpticalFlow_to_VariationalRefinement }
boxed_cast_base! { DenseOpticalFlow, core::Algorithm, cv_DenseOpticalFlow_to_Algorithm }
impl std::fmt::Debug for DenseOpticalFlow {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("DenseOpticalFlow")
.finish()
}
}
pub trait FarnebackOpticalFlowTraitConst: crate::video::DenseOpticalFlowTraitConst {
fn as_raw_FarnebackOpticalFlow(&self) -> *const c_void;
#[inline]
fn get_num_levels(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_getNumLevels_const(self.as_raw_FarnebackOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_pyr_scale(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_getPyrScale_const(self.as_raw_FarnebackOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_fast_pyramids(&self) -> Result<bool> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_getFastPyramids_const(self.as_raw_FarnebackOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_win_size(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_getWinSize_const(self.as_raw_FarnebackOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_num_iters(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_getNumIters_const(self.as_raw_FarnebackOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_poly_n(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_getPolyN_const(self.as_raw_FarnebackOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_poly_sigma(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_getPolySigma_const(self.as_raw_FarnebackOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_flags(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_getFlags_const(self.as_raw_FarnebackOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait FarnebackOpticalFlowTrait: crate::video::DenseOpticalFlowTrait + crate::video::FarnebackOpticalFlowTraitConst {
fn as_raw_mut_FarnebackOpticalFlow(&mut self) -> *mut c_void;
#[inline]
fn set_num_levels(&mut self, num_levels: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_setNumLevels_int(self.as_raw_mut_FarnebackOpticalFlow(), num_levels, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_pyr_scale(&mut self, pyr_scale: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_setPyrScale_double(self.as_raw_mut_FarnebackOpticalFlow(), pyr_scale, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_fast_pyramids(&mut self, fast_pyramids: bool) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_setFastPyramids_bool(self.as_raw_mut_FarnebackOpticalFlow(), fast_pyramids, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_win_size(&mut self, win_size: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_setWinSize_int(self.as_raw_mut_FarnebackOpticalFlow(), win_size, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_num_iters(&mut self, num_iters: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_setNumIters_int(self.as_raw_mut_FarnebackOpticalFlow(), num_iters, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_poly_n(&mut self, poly_n: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_setPolyN_int(self.as_raw_mut_FarnebackOpticalFlow(), poly_n, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_poly_sigma(&mut self, poly_sigma: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_setPolySigma_double(self.as_raw_mut_FarnebackOpticalFlow(), poly_sigma, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_flags(&mut self, flags: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_setFlags_int(self.as_raw_mut_FarnebackOpticalFlow(), flags, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct FarnebackOpticalFlow {
ptr: *mut c_void
}
opencv_type_boxed! { FarnebackOpticalFlow }
impl Drop for FarnebackOpticalFlow {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_FarnebackOpticalFlow_delete(instance: *mut c_void); }
unsafe { cv_FarnebackOpticalFlow_delete(self.as_raw_mut_FarnebackOpticalFlow()) };
}
}
unsafe impl Send for FarnebackOpticalFlow {}
impl core::AlgorithmTraitConst for FarnebackOpticalFlow {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for FarnebackOpticalFlow {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::DenseOpticalFlowTraitConst for FarnebackOpticalFlow {
#[inline] fn as_raw_DenseOpticalFlow(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::DenseOpticalFlowTrait for FarnebackOpticalFlow {
#[inline] fn as_raw_mut_DenseOpticalFlow(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::FarnebackOpticalFlowTraitConst for FarnebackOpticalFlow {
#[inline] fn as_raw_FarnebackOpticalFlow(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::FarnebackOpticalFlowTrait for FarnebackOpticalFlow {
#[inline] fn as_raw_mut_FarnebackOpticalFlow(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl FarnebackOpticalFlow {
#[inline]
pub fn create(num_levels: i32, pyr_scale: f64, fast_pyramids: bool, win_size: i32, num_iters: i32, poly_n: i32, poly_sigma: f64, flags: i32) -> Result<core::Ptr<crate::video::FarnebackOpticalFlow>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_FarnebackOpticalFlow_create_int_double_bool_int_int_int_double_int(num_levels, pyr_scale, fast_pyramids, win_size, num_iters, poly_n, poly_sigma, flags, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::video::FarnebackOpticalFlow>::opencv_from_extern(ret) };
Ok(ret)
}
}
boxed_cast_base! { FarnebackOpticalFlow, core::Algorithm, cv_FarnebackOpticalFlow_to_Algorithm }
boxed_cast_base! { FarnebackOpticalFlow, crate::video::DenseOpticalFlow, cv_FarnebackOpticalFlow_to_DenseOpticalFlow }
impl std::fmt::Debug for FarnebackOpticalFlow {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("FarnebackOpticalFlow")
.finish()
}
}
pub trait KalmanFilterTraitConst {
fn as_raw_KalmanFilter(&self) -> *const c_void;
#[inline]
fn state_pre(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropStatePre_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn state_post(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropStatePost_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn transition_matrix(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropTransitionMatrix_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn control_matrix(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropControlMatrix_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn measurement_matrix(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropMeasurementMatrix_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn process_noise_cov(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropProcessNoiseCov_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn measurement_noise_cov(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropMeasurementNoiseCov_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn error_cov_pre(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropErrorCovPre_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn gain(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropGain_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn error_cov_post(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropErrorCovPost_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn temp1(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropTemp1_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn temp2(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropTemp2_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn temp3(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropTemp3_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn temp4(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropTemp4_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
#[inline]
fn temp5(&self) -> core::Mat {
let ret = unsafe { sys::cv_KalmanFilter_getPropTemp5_const(self.as_raw_KalmanFilter()) };
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
ret
}
}
pub trait KalmanFilterTrait: crate::video::KalmanFilterTraitConst {
fn as_raw_mut_KalmanFilter(&mut self) -> *mut c_void;
#[inline]
fn set_state_pre(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropStatePre_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_state_post(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropStatePost_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_transition_matrix(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropTransitionMatrix_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_control_matrix(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropControlMatrix_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_measurement_matrix(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropMeasurementMatrix_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_process_noise_cov(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropProcessNoiseCov_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_measurement_noise_cov(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropMeasurementNoiseCov_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_error_cov_pre(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropErrorCovPre_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_gain(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropGain_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_error_cov_post(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropErrorCovPost_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_temp1(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropTemp1_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_temp2(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropTemp2_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_temp3(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropTemp3_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_temp4(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropTemp4_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn set_temp5(&mut self, mut val: core::Mat) {
let ret = unsafe { sys::cv_KalmanFilter_setPropTemp5_Mat(self.as_raw_mut_KalmanFilter(), val.as_raw_mut_Mat()) };
ret
}
#[inline]
fn init(&mut self, dynam_params: i32, measure_params: i32, control_params: i32, typ: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_KalmanFilter_init_int_int_int_int(self.as_raw_mut_KalmanFilter(), dynam_params, measure_params, control_params, typ, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn predict(&mut self, control: &core::Mat) -> Result<core::Mat> {
return_send!(via ocvrs_return);
unsafe { sys::cv_KalmanFilter_predict_const_MatR(self.as_raw_mut_KalmanFilter(), control.as_raw_Mat(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
fn correct(&mut self, measurement: &core::Mat) -> Result<core::Mat> {
return_send!(via ocvrs_return);
unsafe { sys::cv_KalmanFilter_correct_const_MatR(self.as_raw_mut_KalmanFilter(), measurement.as_raw_Mat(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Mat::opencv_from_extern(ret) };
Ok(ret)
}
}
pub struct KalmanFilter {
ptr: *mut c_void
}
opencv_type_boxed! { KalmanFilter }
impl Drop for KalmanFilter {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_KalmanFilter_delete(instance: *mut c_void); }
unsafe { cv_KalmanFilter_delete(self.as_raw_mut_KalmanFilter()) };
}
}
unsafe impl Send for KalmanFilter {}
impl crate::video::KalmanFilterTraitConst for KalmanFilter {
#[inline] fn as_raw_KalmanFilter(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::KalmanFilterTrait for KalmanFilter {
#[inline] fn as_raw_mut_KalmanFilter(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl KalmanFilter {
#[inline]
pub fn default() -> Result<crate::video::KalmanFilter> {
return_send!(via ocvrs_return);
unsafe { sys::cv_KalmanFilter_KalmanFilter(ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { crate::video::KalmanFilter::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
pub fn new(dynam_params: i32, measure_params: i32, control_params: i32, typ: i32) -> Result<crate::video::KalmanFilter> {
return_send!(via ocvrs_return);
unsafe { sys::cv_KalmanFilter_KalmanFilter_int_int_int_int(dynam_params, measure_params, control_params, typ, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { crate::video::KalmanFilter::opencv_from_extern(ret) };
Ok(ret)
}
}
impl std::fmt::Debug for KalmanFilter {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("KalmanFilter")
.field("state_pre", &crate::video::KalmanFilterTraitConst::state_pre(self))
.field("state_post", &crate::video::KalmanFilterTraitConst::state_post(self))
.field("transition_matrix", &crate::video::KalmanFilterTraitConst::transition_matrix(self))
.field("control_matrix", &crate::video::KalmanFilterTraitConst::control_matrix(self))
.field("measurement_matrix", &crate::video::KalmanFilterTraitConst::measurement_matrix(self))
.field("process_noise_cov", &crate::video::KalmanFilterTraitConst::process_noise_cov(self))
.field("measurement_noise_cov", &crate::video::KalmanFilterTraitConst::measurement_noise_cov(self))
.field("error_cov_pre", &crate::video::KalmanFilterTraitConst::error_cov_pre(self))
.field("gain", &crate::video::KalmanFilterTraitConst::gain(self))
.field("error_cov_post", &crate::video::KalmanFilterTraitConst::error_cov_post(self))
.field("temp1", &crate::video::KalmanFilterTraitConst::temp1(self))
.field("temp2", &crate::video::KalmanFilterTraitConst::temp2(self))
.field("temp3", &crate::video::KalmanFilterTraitConst::temp3(self))
.field("temp4", &crate::video::KalmanFilterTraitConst::temp4(self))
.field("temp5", &crate::video::KalmanFilterTraitConst::temp5(self))
.finish()
}
}
pub trait SparseOpticalFlowTraitConst: core::AlgorithmTraitConst {
fn as_raw_SparseOpticalFlow(&self) -> *const c_void;
}
pub trait SparseOpticalFlowTrait: core::AlgorithmTrait + crate::video::SparseOpticalFlowTraitConst {
fn as_raw_mut_SparseOpticalFlow(&mut self) -> *mut c_void;
#[inline]
fn calc(&mut self, prev_img: &impl core::ToInputArray, next_img: &impl core::ToInputArray, prev_pts: &impl core::ToInputArray, next_pts: &mut impl core::ToInputOutputArray, status: &mut impl core::ToOutputArray, err: &mut impl core::ToOutputArray) -> Result<()> {
input_array_arg!(prev_img);
input_array_arg!(next_img);
input_array_arg!(prev_pts);
input_output_array_arg!(next_pts);
output_array_arg!(status);
output_array_arg!(err);
return_send!(via ocvrs_return);
unsafe { sys::cv_SparseOpticalFlow_calc_const__InputArrayR_const__InputArrayR_const__InputArrayR_const__InputOutputArrayR_const__OutputArrayR_const__OutputArrayR(self.as_raw_mut_SparseOpticalFlow(), prev_img.as_raw__InputArray(), next_img.as_raw__InputArray(), prev_pts.as_raw__InputArray(), next_pts.as_raw__InputOutputArray(), status.as_raw__OutputArray(), err.as_raw__OutputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct SparseOpticalFlow {
ptr: *mut c_void
}
opencv_type_boxed! { SparseOpticalFlow }
impl Drop for SparseOpticalFlow {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_SparseOpticalFlow_delete(instance: *mut c_void); }
unsafe { cv_SparseOpticalFlow_delete(self.as_raw_mut_SparseOpticalFlow()) };
}
}
unsafe impl Send for SparseOpticalFlow {}
impl core::AlgorithmTraitConst for SparseOpticalFlow {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for SparseOpticalFlow {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::SparseOpticalFlowTraitConst for SparseOpticalFlow {
#[inline] fn as_raw_SparseOpticalFlow(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::SparseOpticalFlowTrait for SparseOpticalFlow {
#[inline] fn as_raw_mut_SparseOpticalFlow(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl SparseOpticalFlow {
}
boxed_cast_descendant! { SparseOpticalFlow, crate::video::SparsePyrLKOpticalFlow, cv_SparseOpticalFlow_to_SparsePyrLKOpticalFlow }
boxed_cast_base! { SparseOpticalFlow, core::Algorithm, cv_SparseOpticalFlow_to_Algorithm }
impl std::fmt::Debug for SparseOpticalFlow {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("SparseOpticalFlow")
.finish()
}
}
pub trait SparsePyrLKOpticalFlowTraitConst: crate::video::SparseOpticalFlowTraitConst {
fn as_raw_SparsePyrLKOpticalFlow(&self) -> *const c_void;
#[inline]
fn get_win_size(&self) -> Result<core::Size> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_getWinSize_const(self.as_raw_SparsePyrLKOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_max_level(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_getMaxLevel_const(self.as_raw_SparsePyrLKOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_term_criteria(&self) -> Result<core::TermCriteria> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_getTermCriteria_const(self.as_raw_SparsePyrLKOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_flags(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_getFlags_const(self.as_raw_SparsePyrLKOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_min_eig_threshold(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_getMinEigThreshold_const(self.as_raw_SparsePyrLKOpticalFlow(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait SparsePyrLKOpticalFlowTrait: crate::video::SparseOpticalFlowTrait + crate::video::SparsePyrLKOpticalFlowTraitConst {
fn as_raw_mut_SparsePyrLKOpticalFlow(&mut self) -> *mut c_void;
#[inline]
fn set_win_size(&mut self, win_size: core::Size) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_setWinSize_Size(self.as_raw_mut_SparsePyrLKOpticalFlow(), win_size.opencv_as_extern(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_max_level(&mut self, max_level: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_setMaxLevel_int(self.as_raw_mut_SparsePyrLKOpticalFlow(), max_level, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_term_criteria(&mut self, crit: &mut core::TermCriteria) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_setTermCriteria_TermCriteriaR(self.as_raw_mut_SparsePyrLKOpticalFlow(), crit, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_flags(&mut self, flags: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_setFlags_int(self.as_raw_mut_SparsePyrLKOpticalFlow(), flags, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_min_eig_threshold(&mut self, min_eig_threshold: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_setMinEigThreshold_double(self.as_raw_mut_SparsePyrLKOpticalFlow(), min_eig_threshold, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct SparsePyrLKOpticalFlow {
ptr: *mut c_void
}
opencv_type_boxed! { SparsePyrLKOpticalFlow }
impl Drop for SparsePyrLKOpticalFlow {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_SparsePyrLKOpticalFlow_delete(instance: *mut c_void); }
unsafe { cv_SparsePyrLKOpticalFlow_delete(self.as_raw_mut_SparsePyrLKOpticalFlow()) };
}
}
unsafe impl Send for SparsePyrLKOpticalFlow {}
impl core::AlgorithmTraitConst for SparsePyrLKOpticalFlow {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for SparsePyrLKOpticalFlow {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::SparseOpticalFlowTraitConst for SparsePyrLKOpticalFlow {
#[inline] fn as_raw_SparseOpticalFlow(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::SparseOpticalFlowTrait for SparsePyrLKOpticalFlow {
#[inline] fn as_raw_mut_SparseOpticalFlow(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::SparsePyrLKOpticalFlowTraitConst for SparsePyrLKOpticalFlow {
#[inline] fn as_raw_SparsePyrLKOpticalFlow(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::SparsePyrLKOpticalFlowTrait for SparsePyrLKOpticalFlow {
#[inline] fn as_raw_mut_SparsePyrLKOpticalFlow(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl SparsePyrLKOpticalFlow {
#[inline]
pub fn create(win_size: core::Size, max_level: i32, crit: core::TermCriteria, flags: i32, min_eig_threshold: f64) -> Result<core::Ptr<crate::video::SparsePyrLKOpticalFlow>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_SparsePyrLKOpticalFlow_create_Size_int_TermCriteria_int_double(win_size.opencv_as_extern(), max_level, crit.opencv_as_extern(), flags, min_eig_threshold, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::video::SparsePyrLKOpticalFlow>::opencv_from_extern(ret) };
Ok(ret)
}
}
boxed_cast_base! { SparsePyrLKOpticalFlow, core::Algorithm, cv_SparsePyrLKOpticalFlow_to_Algorithm }
boxed_cast_base! { SparsePyrLKOpticalFlow, crate::video::SparseOpticalFlow, cv_SparsePyrLKOpticalFlow_to_SparseOpticalFlow }
impl std::fmt::Debug for SparsePyrLKOpticalFlow {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("SparsePyrLKOpticalFlow")
.finish()
}
}
pub trait TrackerTraitConst {
fn as_raw_Tracker(&self) -> *const c_void;
}
pub trait TrackerTrait: crate::video::TrackerTraitConst {
fn as_raw_mut_Tracker(&mut self) -> *mut c_void;
#[inline]
fn init(&mut self, image: &impl core::ToInputArray, bounding_box: core::Rect) -> Result<()> {
input_array_arg!(image);
return_send!(via ocvrs_return);
unsafe { sys::cv_Tracker_init_const__InputArrayR_const_RectR(self.as_raw_mut_Tracker(), image.as_raw__InputArray(), &bounding_box, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn update(&mut self, image: &impl core::ToInputArray, bounding_box: &mut core::Rect) -> Result<bool> {
input_array_arg!(image);
return_send!(via ocvrs_return);
unsafe { sys::cv_Tracker_update_const__InputArrayR_RectR(self.as_raw_mut_Tracker(), image.as_raw__InputArray(), bounding_box, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct Tracker {
ptr: *mut c_void
}
opencv_type_boxed! { Tracker }
impl Drop for Tracker {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_Tracker_delete(instance: *mut c_void); }
unsafe { cv_Tracker_delete(self.as_raw_mut_Tracker()) };
}
}
unsafe impl Send for Tracker {}
impl crate::video::TrackerTraitConst for Tracker {
#[inline] fn as_raw_Tracker(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerTrait for Tracker {
#[inline] fn as_raw_mut_Tracker(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl Tracker {
}
boxed_cast_descendant! { Tracker, crate::video::TrackerDaSiamRPN, cv_Tracker_to_TrackerDaSiamRPN }
boxed_cast_descendant! { Tracker, crate::video::TrackerGOTURN, cv_Tracker_to_TrackerGOTURN }
boxed_cast_descendant! { Tracker, crate::video::TrackerMIL, cv_Tracker_to_TrackerMIL }
boxed_cast_descendant! { Tracker, crate::video::TrackerNano, cv_Tracker_to_TrackerNano }
impl std::fmt::Debug for Tracker {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("Tracker")
.finish()
}
}
pub trait TrackerDaSiamRPNTraitConst: crate::video::TrackerTraitConst {
fn as_raw_TrackerDaSiamRPN(&self) -> *const c_void;
}
pub trait TrackerDaSiamRPNTrait: crate::video::TrackerDaSiamRPNTraitConst + crate::video::TrackerTrait {
fn as_raw_mut_TrackerDaSiamRPN(&mut self) -> *mut c_void;
#[inline]
fn get_tracking_score(&mut self) -> Result<f32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_TrackerDaSiamRPN_getTrackingScore(self.as_raw_mut_TrackerDaSiamRPN(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct TrackerDaSiamRPN {
ptr: *mut c_void
}
opencv_type_boxed! { TrackerDaSiamRPN }
impl Drop for TrackerDaSiamRPN {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_TrackerDaSiamRPN_delete(instance: *mut c_void); }
unsafe { cv_TrackerDaSiamRPN_delete(self.as_raw_mut_TrackerDaSiamRPN()) };
}
}
unsafe impl Send for TrackerDaSiamRPN {}
impl crate::video::TrackerTraitConst for TrackerDaSiamRPN {
#[inline] fn as_raw_Tracker(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerTrait for TrackerDaSiamRPN {
#[inline] fn as_raw_mut_Tracker(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::TrackerDaSiamRPNTraitConst for TrackerDaSiamRPN {
#[inline] fn as_raw_TrackerDaSiamRPN(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerDaSiamRPNTrait for TrackerDaSiamRPN {
#[inline] fn as_raw_mut_TrackerDaSiamRPN(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl TrackerDaSiamRPN {
#[inline]
pub fn create(parameters: &crate::video::TrackerDaSiamRPN_Params) -> Result<core::Ptr<crate::video::TrackerDaSiamRPN>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_TrackerDaSiamRPN_create_const_ParamsR(parameters.as_raw_TrackerDaSiamRPN_Params(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::video::TrackerDaSiamRPN>::opencv_from_extern(ret) };
Ok(ret)
}
}
boxed_cast_base! { TrackerDaSiamRPN, crate::video::Tracker, cv_TrackerDaSiamRPN_to_Tracker }
impl std::fmt::Debug for TrackerDaSiamRPN {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("TrackerDaSiamRPN")
.finish()
}
}
pub trait TrackerDaSiamRPN_ParamsTraitConst {
fn as_raw_TrackerDaSiamRPN_Params(&self) -> *const c_void;
#[inline]
fn model(&self) -> String {
let ret = unsafe { sys::cv_TrackerDaSiamRPN_Params_getPropModel_const(self.as_raw_TrackerDaSiamRPN_Params()) };
let ret = unsafe { String::opencv_from_extern(ret) };
ret
}
#[inline]
fn kernel_cls1(&self) -> String {
let ret = unsafe { sys::cv_TrackerDaSiamRPN_Params_getPropKernel_cls1_const(self.as_raw_TrackerDaSiamRPN_Params()) };
let ret = unsafe { String::opencv_from_extern(ret) };
ret
}
#[inline]
fn kernel_r1(&self) -> String {
let ret = unsafe { sys::cv_TrackerDaSiamRPN_Params_getPropKernel_r1_const(self.as_raw_TrackerDaSiamRPN_Params()) };
let ret = unsafe { String::opencv_from_extern(ret) };
ret
}
#[inline]
fn backend(&self) -> i32 {
let ret = unsafe { sys::cv_TrackerDaSiamRPN_Params_getPropBackend_const(self.as_raw_TrackerDaSiamRPN_Params()) };
ret
}
#[inline]
fn target(&self) -> i32 {
let ret = unsafe { sys::cv_TrackerDaSiamRPN_Params_getPropTarget_const(self.as_raw_TrackerDaSiamRPN_Params()) };
ret
}
}
pub trait TrackerDaSiamRPN_ParamsTrait: crate::video::TrackerDaSiamRPN_ParamsTraitConst {
fn as_raw_mut_TrackerDaSiamRPN_Params(&mut self) -> *mut c_void;
#[inline]
fn set_model(&mut self, val: &str) {
extern_container_arg!(nofail mut val);
let ret = unsafe { sys::cv_TrackerDaSiamRPN_Params_setPropModel_string(self.as_raw_mut_TrackerDaSiamRPN_Params(), val.opencv_as_extern_mut()) };
ret
}
#[inline]
fn set_kernel_cls1(&mut self, val: &str) {
extern_container_arg!(nofail mut val);
let ret = unsafe { sys::cv_TrackerDaSiamRPN_Params_setPropKernel_cls1_string(self.as_raw_mut_TrackerDaSiamRPN_Params(), val.opencv_as_extern_mut()) };
ret
}
#[inline]
fn set_kernel_r1(&mut self, val: &str) {
extern_container_arg!(nofail mut val);
let ret = unsafe { sys::cv_TrackerDaSiamRPN_Params_setPropKernel_r1_string(self.as_raw_mut_TrackerDaSiamRPN_Params(), val.opencv_as_extern_mut()) };
ret
}
#[inline]
fn set_backend(&mut self, val: i32) {
let ret = unsafe { sys::cv_TrackerDaSiamRPN_Params_setPropBackend_int(self.as_raw_mut_TrackerDaSiamRPN_Params(), val) };
ret
}
#[inline]
fn set_target(&mut self, val: i32) {
let ret = unsafe { sys::cv_TrackerDaSiamRPN_Params_setPropTarget_int(self.as_raw_mut_TrackerDaSiamRPN_Params(), val) };
ret
}
}
pub struct TrackerDaSiamRPN_Params {
ptr: *mut c_void
}
opencv_type_boxed! { TrackerDaSiamRPN_Params }
impl Drop for TrackerDaSiamRPN_Params {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_TrackerDaSiamRPN_Params_delete(instance: *mut c_void); }
unsafe { cv_TrackerDaSiamRPN_Params_delete(self.as_raw_mut_TrackerDaSiamRPN_Params()) };
}
}
unsafe impl Send for TrackerDaSiamRPN_Params {}
impl crate::video::TrackerDaSiamRPN_ParamsTraitConst for TrackerDaSiamRPN_Params {
#[inline] fn as_raw_TrackerDaSiamRPN_Params(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerDaSiamRPN_ParamsTrait for TrackerDaSiamRPN_Params {
#[inline] fn as_raw_mut_TrackerDaSiamRPN_Params(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl TrackerDaSiamRPN_Params {
#[inline]
pub fn default() -> Result<crate::video::TrackerDaSiamRPN_Params> {
return_send!(via ocvrs_return);
unsafe { sys::cv_TrackerDaSiamRPN_Params_Params(ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { crate::video::TrackerDaSiamRPN_Params::opencv_from_extern(ret) };
Ok(ret)
}
}
impl Clone for TrackerDaSiamRPN_Params {
#[inline]
fn clone(&self) -> Self {
extern "C" { fn cv_TrackerDaSiamRPN_Params_implicitClone_const_TrackerDaSiamRPN_Params(val: extern_send!(TrackerDaSiamRPN_Params)) -> extern_receive!(TrackerDaSiamRPN_Params: 'static); }
unsafe { Self::from_raw(cv_TrackerDaSiamRPN_Params_implicitClone_const_TrackerDaSiamRPN_Params(self.as_raw_TrackerDaSiamRPN_Params())) }
}
}
impl std::fmt::Debug for TrackerDaSiamRPN_Params {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("TrackerDaSiamRPN_Params")
.field("model", &crate::video::TrackerDaSiamRPN_ParamsTraitConst::model(self))
.field("kernel_cls1", &crate::video::TrackerDaSiamRPN_ParamsTraitConst::kernel_cls1(self))
.field("kernel_r1", &crate::video::TrackerDaSiamRPN_ParamsTraitConst::kernel_r1(self))
.field("backend", &crate::video::TrackerDaSiamRPN_ParamsTraitConst::backend(self))
.field("target", &crate::video::TrackerDaSiamRPN_ParamsTraitConst::target(self))
.finish()
}
}
pub trait TrackerGOTURNTraitConst: crate::video::TrackerTraitConst {
fn as_raw_TrackerGOTURN(&self) -> *const c_void;
}
pub trait TrackerGOTURNTrait: crate::video::TrackerGOTURNTraitConst + crate::video::TrackerTrait {
fn as_raw_mut_TrackerGOTURN(&mut self) -> *mut c_void;
}
pub struct TrackerGOTURN {
ptr: *mut c_void
}
opencv_type_boxed! { TrackerGOTURN }
impl Drop for TrackerGOTURN {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_TrackerGOTURN_delete(instance: *mut c_void); }
unsafe { cv_TrackerGOTURN_delete(self.as_raw_mut_TrackerGOTURN()) };
}
}
unsafe impl Send for TrackerGOTURN {}
impl crate::video::TrackerTraitConst for TrackerGOTURN {
#[inline] fn as_raw_Tracker(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerTrait for TrackerGOTURN {
#[inline] fn as_raw_mut_Tracker(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::TrackerGOTURNTraitConst for TrackerGOTURN {
#[inline] fn as_raw_TrackerGOTURN(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerGOTURNTrait for TrackerGOTURN {
#[inline] fn as_raw_mut_TrackerGOTURN(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl TrackerGOTURN {
#[inline]
pub fn create(parameters: &crate::video::TrackerGOTURN_Params) -> Result<core::Ptr<crate::video::TrackerGOTURN>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_TrackerGOTURN_create_const_ParamsR(parameters.as_raw_TrackerGOTURN_Params(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::video::TrackerGOTURN>::opencv_from_extern(ret) };
Ok(ret)
}
}
boxed_cast_base! { TrackerGOTURN, crate::video::Tracker, cv_TrackerGOTURN_to_Tracker }
impl std::fmt::Debug for TrackerGOTURN {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("TrackerGOTURN")
.finish()
}
}
pub trait TrackerGOTURN_ParamsTraitConst {
fn as_raw_TrackerGOTURN_Params(&self) -> *const c_void;
#[inline]
fn model_txt(&self) -> String {
let ret = unsafe { sys::cv_TrackerGOTURN_Params_getPropModelTxt_const(self.as_raw_TrackerGOTURN_Params()) };
let ret = unsafe { String::opencv_from_extern(ret) };
ret
}
#[inline]
fn model_bin(&self) -> String {
let ret = unsafe { sys::cv_TrackerGOTURN_Params_getPropModelBin_const(self.as_raw_TrackerGOTURN_Params()) };
let ret = unsafe { String::opencv_from_extern(ret) };
ret
}
}
pub trait TrackerGOTURN_ParamsTrait: crate::video::TrackerGOTURN_ParamsTraitConst {
fn as_raw_mut_TrackerGOTURN_Params(&mut self) -> *mut c_void;
#[inline]
fn set_model_txt(&mut self, val: &str) {
extern_container_arg!(nofail mut val);
let ret = unsafe { sys::cv_TrackerGOTURN_Params_setPropModelTxt_string(self.as_raw_mut_TrackerGOTURN_Params(), val.opencv_as_extern_mut()) };
ret
}
#[inline]
fn set_model_bin(&mut self, val: &str) {
extern_container_arg!(nofail mut val);
let ret = unsafe { sys::cv_TrackerGOTURN_Params_setPropModelBin_string(self.as_raw_mut_TrackerGOTURN_Params(), val.opencv_as_extern_mut()) };
ret
}
}
pub struct TrackerGOTURN_Params {
ptr: *mut c_void
}
opencv_type_boxed! { TrackerGOTURN_Params }
impl Drop for TrackerGOTURN_Params {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_TrackerGOTURN_Params_delete(instance: *mut c_void); }
unsafe { cv_TrackerGOTURN_Params_delete(self.as_raw_mut_TrackerGOTURN_Params()) };
}
}
unsafe impl Send for TrackerGOTURN_Params {}
impl crate::video::TrackerGOTURN_ParamsTraitConst for TrackerGOTURN_Params {
#[inline] fn as_raw_TrackerGOTURN_Params(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerGOTURN_ParamsTrait for TrackerGOTURN_Params {
#[inline] fn as_raw_mut_TrackerGOTURN_Params(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl TrackerGOTURN_Params {
#[inline]
pub fn default() -> Result<crate::video::TrackerGOTURN_Params> {
return_send!(via ocvrs_return);
unsafe { sys::cv_TrackerGOTURN_Params_Params(ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { crate::video::TrackerGOTURN_Params::opencv_from_extern(ret) };
Ok(ret)
}
}
impl Clone for TrackerGOTURN_Params {
#[inline]
fn clone(&self) -> Self {
extern "C" { fn cv_TrackerGOTURN_Params_implicitClone_const_TrackerGOTURN_Params(val: extern_send!(TrackerGOTURN_Params)) -> extern_receive!(TrackerGOTURN_Params: 'static); }
unsafe { Self::from_raw(cv_TrackerGOTURN_Params_implicitClone_const_TrackerGOTURN_Params(self.as_raw_TrackerGOTURN_Params())) }
}
}
impl std::fmt::Debug for TrackerGOTURN_Params {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("TrackerGOTURN_Params")
.field("model_txt", &crate::video::TrackerGOTURN_ParamsTraitConst::model_txt(self))
.field("model_bin", &crate::video::TrackerGOTURN_ParamsTraitConst::model_bin(self))
.finish()
}
}
pub trait TrackerMILTraitConst: crate::video::TrackerTraitConst {
fn as_raw_TrackerMIL(&self) -> *const c_void;
}
pub trait TrackerMILTrait: crate::video::TrackerMILTraitConst + crate::video::TrackerTrait {
fn as_raw_mut_TrackerMIL(&mut self) -> *mut c_void;
}
pub struct TrackerMIL {
ptr: *mut c_void
}
opencv_type_boxed! { TrackerMIL }
impl Drop for TrackerMIL {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_TrackerMIL_delete(instance: *mut c_void); }
unsafe { cv_TrackerMIL_delete(self.as_raw_mut_TrackerMIL()) };
}
}
unsafe impl Send for TrackerMIL {}
impl crate::video::TrackerTraitConst for TrackerMIL {
#[inline] fn as_raw_Tracker(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerTrait for TrackerMIL {
#[inline] fn as_raw_mut_Tracker(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::TrackerMILTraitConst for TrackerMIL {
#[inline] fn as_raw_TrackerMIL(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerMILTrait for TrackerMIL {
#[inline] fn as_raw_mut_TrackerMIL(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl TrackerMIL {
#[inline]
pub fn create(parameters: crate::video::TrackerMIL_Params) -> Result<core::Ptr<crate::video::TrackerMIL>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_TrackerMIL_create_const_ParamsR(¶meters, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::video::TrackerMIL>::opencv_from_extern(ret) };
Ok(ret)
}
}
boxed_cast_base! { TrackerMIL, crate::video::Tracker, cv_TrackerMIL_to_Tracker }
impl std::fmt::Debug for TrackerMIL {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("TrackerMIL")
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct TrackerMIL_Params {
pub sampler_init_in_radius: f32,
pub sampler_init_max_neg_num: i32,
pub sampler_search_win_size: f32,
pub sampler_track_in_radius: f32,
pub sampler_track_max_pos_num: i32,
pub sampler_track_max_neg_num: i32,
pub feature_set_num_features: i32,
}
opencv_type_simple! { crate::video::TrackerMIL_Params }
impl TrackerMIL_Params {
#[inline]
pub fn default() -> Result<crate::video::TrackerMIL_Params> {
return_send!(via ocvrs_return);
unsafe { sys::cv_TrackerMIL_Params_Params(ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait TrackerNanoTraitConst: crate::video::TrackerTraitConst {
fn as_raw_TrackerNano(&self) -> *const c_void;
}
pub trait TrackerNanoTrait: crate::video::TrackerNanoTraitConst + crate::video::TrackerTrait {
fn as_raw_mut_TrackerNano(&mut self) -> *mut c_void;
#[inline]
fn get_tracking_score(&mut self) -> Result<f32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_TrackerNano_getTrackingScore(self.as_raw_mut_TrackerNano(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct TrackerNano {
ptr: *mut c_void
}
opencv_type_boxed! { TrackerNano }
impl Drop for TrackerNano {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_TrackerNano_delete(instance: *mut c_void); }
unsafe { cv_TrackerNano_delete(self.as_raw_mut_TrackerNano()) };
}
}
unsafe impl Send for TrackerNano {}
impl crate::video::TrackerTraitConst for TrackerNano {
#[inline] fn as_raw_Tracker(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerTrait for TrackerNano {
#[inline] fn as_raw_mut_Tracker(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::TrackerNanoTraitConst for TrackerNano {
#[inline] fn as_raw_TrackerNano(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerNanoTrait for TrackerNano {
#[inline] fn as_raw_mut_TrackerNano(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl TrackerNano {
#[inline]
pub fn create(parameters: &crate::video::TrackerNano_Params) -> Result<core::Ptr<crate::video::TrackerNano>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_TrackerNano_create_const_ParamsR(parameters.as_raw_TrackerNano_Params(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::video::TrackerNano>::opencv_from_extern(ret) };
Ok(ret)
}
}
boxed_cast_base! { TrackerNano, crate::video::Tracker, cv_TrackerNano_to_Tracker }
impl std::fmt::Debug for TrackerNano {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("TrackerNano")
.finish()
}
}
pub trait TrackerNano_ParamsTraitConst {
fn as_raw_TrackerNano_Params(&self) -> *const c_void;
#[inline]
fn backbone(&self) -> String {
let ret = unsafe { sys::cv_TrackerNano_Params_getPropBackbone_const(self.as_raw_TrackerNano_Params()) };
let ret = unsafe { String::opencv_from_extern(ret) };
ret
}
#[inline]
fn neckhead(&self) -> String {
let ret = unsafe { sys::cv_TrackerNano_Params_getPropNeckhead_const(self.as_raw_TrackerNano_Params()) };
let ret = unsafe { String::opencv_from_extern(ret) };
ret
}
#[inline]
fn backend(&self) -> i32 {
let ret = unsafe { sys::cv_TrackerNano_Params_getPropBackend_const(self.as_raw_TrackerNano_Params()) };
ret
}
#[inline]
fn target(&self) -> i32 {
let ret = unsafe { sys::cv_TrackerNano_Params_getPropTarget_const(self.as_raw_TrackerNano_Params()) };
ret
}
}
pub trait TrackerNano_ParamsTrait: crate::video::TrackerNano_ParamsTraitConst {
fn as_raw_mut_TrackerNano_Params(&mut self) -> *mut c_void;
#[inline]
fn set_backbone(&mut self, val: &str) {
extern_container_arg!(nofail mut val);
let ret = unsafe { sys::cv_TrackerNano_Params_setPropBackbone_string(self.as_raw_mut_TrackerNano_Params(), val.opencv_as_extern_mut()) };
ret
}
#[inline]
fn set_neckhead(&mut self, val: &str) {
extern_container_arg!(nofail mut val);
let ret = unsafe { sys::cv_TrackerNano_Params_setPropNeckhead_string(self.as_raw_mut_TrackerNano_Params(), val.opencv_as_extern_mut()) };
ret
}
#[inline]
fn set_backend(&mut self, val: i32) {
let ret = unsafe { sys::cv_TrackerNano_Params_setPropBackend_int(self.as_raw_mut_TrackerNano_Params(), val) };
ret
}
#[inline]
fn set_target(&mut self, val: i32) {
let ret = unsafe { sys::cv_TrackerNano_Params_setPropTarget_int(self.as_raw_mut_TrackerNano_Params(), val) };
ret
}
}
pub struct TrackerNano_Params {
ptr: *mut c_void
}
opencv_type_boxed! { TrackerNano_Params }
impl Drop for TrackerNano_Params {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_TrackerNano_Params_delete(instance: *mut c_void); }
unsafe { cv_TrackerNano_Params_delete(self.as_raw_mut_TrackerNano_Params()) };
}
}
unsafe impl Send for TrackerNano_Params {}
impl crate::video::TrackerNano_ParamsTraitConst for TrackerNano_Params {
#[inline] fn as_raw_TrackerNano_Params(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::TrackerNano_ParamsTrait for TrackerNano_Params {
#[inline] fn as_raw_mut_TrackerNano_Params(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl TrackerNano_Params {
#[inline]
pub fn default() -> Result<crate::video::TrackerNano_Params> {
return_send!(via ocvrs_return);
unsafe { sys::cv_TrackerNano_Params_Params(ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { crate::video::TrackerNano_Params::opencv_from_extern(ret) };
Ok(ret)
}
}
impl Clone for TrackerNano_Params {
#[inline]
fn clone(&self) -> Self {
extern "C" { fn cv_TrackerNano_Params_implicitClone_const_TrackerNano_Params(val: extern_send!(TrackerNano_Params)) -> extern_receive!(TrackerNano_Params: 'static); }
unsafe { Self::from_raw(cv_TrackerNano_Params_implicitClone_const_TrackerNano_Params(self.as_raw_TrackerNano_Params())) }
}
}
impl std::fmt::Debug for TrackerNano_Params {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("TrackerNano_Params")
.field("backbone", &crate::video::TrackerNano_ParamsTraitConst::backbone(self))
.field("neckhead", &crate::video::TrackerNano_ParamsTraitConst::neckhead(self))
.field("backend", &crate::video::TrackerNano_ParamsTraitConst::backend(self))
.field("target", &crate::video::TrackerNano_ParamsTraitConst::target(self))
.finish()
}
}
pub trait VariationalRefinementTraitConst: crate::video::DenseOpticalFlowTraitConst {
fn as_raw_VariationalRefinement(&self) -> *const c_void;
#[inline]
fn get_fixed_point_iterations(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_getFixedPointIterations_const(self.as_raw_VariationalRefinement(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_sor_iterations(&self) -> Result<i32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_getSorIterations_const(self.as_raw_VariationalRefinement(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_omega(&self) -> Result<f32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_getOmega_const(self.as_raw_VariationalRefinement(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_alpha(&self) -> Result<f32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_getAlpha_const(self.as_raw_VariationalRefinement(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_delta(&self) -> Result<f32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_getDelta_const(self.as_raw_VariationalRefinement(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_gamma(&self) -> Result<f32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_getGamma_const(self.as_raw_VariationalRefinement(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait VariationalRefinementTrait: crate::video::DenseOpticalFlowTrait + crate::video::VariationalRefinementTraitConst {
fn as_raw_mut_VariationalRefinement(&mut self) -> *mut c_void;
#[inline]
fn calc_uv(&mut self, i0: &impl core::ToInputArray, i1: &impl core::ToInputArray, flow_u: &mut impl core::ToInputOutputArray, flow_v: &mut impl core::ToInputOutputArray) -> Result<()> {
input_array_arg!(i0);
input_array_arg!(i1);
input_output_array_arg!(flow_u);
input_output_array_arg!(flow_v);
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_calcUV_const__InputArrayR_const__InputArrayR_const__InputOutputArrayR_const__InputOutputArrayR(self.as_raw_mut_VariationalRefinement(), i0.as_raw__InputArray(), i1.as_raw__InputArray(), flow_u.as_raw__InputOutputArray(), flow_v.as_raw__InputOutputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_fixed_point_iterations(&mut self, val: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_setFixedPointIterations_int(self.as_raw_mut_VariationalRefinement(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_sor_iterations(&mut self, val: i32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_setSorIterations_int(self.as_raw_mut_VariationalRefinement(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_omega(&mut self, val: f32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_setOmega_float(self.as_raw_mut_VariationalRefinement(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_alpha(&mut self, val: f32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_setAlpha_float(self.as_raw_mut_VariationalRefinement(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_delta(&mut self, val: f32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_setDelta_float(self.as_raw_mut_VariationalRefinement(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_gamma(&mut self, val: f32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_setGamma_float(self.as_raw_mut_VariationalRefinement(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct VariationalRefinement {
ptr: *mut c_void
}
opencv_type_boxed! { VariationalRefinement }
impl Drop for VariationalRefinement {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_VariationalRefinement_delete(instance: *mut c_void); }
unsafe { cv_VariationalRefinement_delete(self.as_raw_mut_VariationalRefinement()) };
}
}
unsafe impl Send for VariationalRefinement {}
impl core::AlgorithmTraitConst for VariationalRefinement {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for VariationalRefinement {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::DenseOpticalFlowTraitConst for VariationalRefinement {
#[inline] fn as_raw_DenseOpticalFlow(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::DenseOpticalFlowTrait for VariationalRefinement {
#[inline] fn as_raw_mut_DenseOpticalFlow(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::video::VariationalRefinementTraitConst for VariationalRefinement {
#[inline] fn as_raw_VariationalRefinement(&self) -> *const c_void { self.as_raw() }
}
impl crate::video::VariationalRefinementTrait for VariationalRefinement {
#[inline] fn as_raw_mut_VariationalRefinement(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl VariationalRefinement {
#[inline]
pub fn create() -> Result<core::Ptr<crate::video::VariationalRefinement>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_VariationalRefinement_create(ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::video::VariationalRefinement>::opencv_from_extern(ret) };
Ok(ret)
}
}
boxed_cast_base! { VariationalRefinement, core::Algorithm, cv_VariationalRefinement_to_Algorithm }
boxed_cast_base! { VariationalRefinement, crate::video::DenseOpticalFlow, cv_VariationalRefinement_to_DenseOpticalFlow }
impl std::fmt::Debug for VariationalRefinement {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("VariationalRefinement")
.finish()
}
}
}