use crate::{mod_prelude::*, core, sys, types};
pub mod prelude {
pub use { super::PredictCollector, super::StandardCollectorTrait, super::FaceRecognizer, super::BasicFaceRecognizer, super::EigenFaceRecognizer, super::FisherFaceRecognizer, super::LBPHFaceRecognizer, super::Facemark, super::CParamsTrait, super::FacemarkTrain, super::FacemarkLBF_ParamsTrait, super::FacemarkLBF, super::FacemarkAAM_ParamsTrait, super::FacemarkAAM_ConfigTrait, super::FacemarkAAM_DataTrait, super::FacemarkAAM_Model_TextureTrait, super::FacemarkAAM_ModelTrait, super::FacemarkAAM, super::FacemarkKazemi_ParamsTrait, super::FacemarkKazemi, super::MACE, super::BIF };
}
pub type FN_FaceDetector = Option<Box<dyn FnMut(*mut c_void, *mut c_void) -> bool + Send + Sync + 'static>>;
pub fn create_facemark_aam() -> Result<types::PtrOfFacemark> {
unsafe { sys::cv_face_createFacemarkAAM() }.into_result().map(|ptr| types::PtrOfFacemark { ptr })
}
pub fn create_facemark_kazemi() -> Result<types::PtrOfFacemark> {
unsafe { sys::cv_face_createFacemarkKazemi() }.into_result().map(|ptr| types::PtrOfFacemark { ptr })
}
pub fn create_facemark_lbf() -> Result<types::PtrOfFacemark> {
unsafe { sys::cv_face_createFacemarkLBF() }.into_result().map(|ptr| types::PtrOfFacemark { ptr })
}
pub fn draw_facemarks(image: &mut dyn core::ToInputOutputArray, points: &dyn core::ToInputArray, color: core::Scalar) -> Result<()> {
input_output_array_arg!(image);
input_array_arg!(points);
unsafe { sys::cv_face_drawFacemarks_const__InputOutputArrayX_const__InputArrayX_Scalar(image.as_raw__InputOutputArray(), points.as_raw__InputArray(), &color) }.into_result()
}
pub fn get_faces_haar(image: &dyn core::ToInputArray, faces: &mut dyn core::ToOutputArray, face_cascade_name: &str) -> Result<bool> {
input_array_arg!(image);
output_array_arg!(faces);
string_arg!(face_cascade_name);
unsafe { sys::cv_face_getFacesHAAR_const__InputArrayX_const__OutputArrayX_const_StringX(image.as_raw__InputArray(), faces.as_raw__OutputArray(), face_cascade_name.as_ptr()) }.into_result()
}
pub fn get_faces(image: &dyn core::ToInputArray, faces: &mut dyn core::ToOutputArray, params: &mut crate::face::CParams) -> Result<bool> {
input_array_arg!(image);
output_array_arg!(faces);
unsafe { sys::cv_face_getFaces_const__InputArrayX_const__OutputArrayX_CParamsX(image.as_raw__InputArray(), faces.as_raw__OutputArray(), params.as_raw_CParams()) }.into_result()
}
pub fn load_dataset_list(image_list: &str, annotation_list: &str, images: &mut types::VectorOfString, annotations: &mut types::VectorOfString) -> Result<bool> {
string_arg!(image_list);
string_arg!(annotation_list);
unsafe { sys::cv_face_loadDatasetList_String_String_vector_String_X_vector_String_X(image_list.as_ptr() as _, annotation_list.as_ptr() as _, images.as_raw_VectorOfString(), annotations.as_raw_VectorOfString()) }.into_result()
}
pub fn load_face_points(filename: &str, points: &mut dyn core::ToOutputArray, offset: f32) -> Result<bool> {
string_arg!(filename);
output_array_arg!(points);
unsafe { sys::cv_face_loadFacePoints_String_const__OutputArrayX_float(filename.as_ptr() as _, points.as_raw__OutputArray(), offset) }.into_result()
}
pub fn load_training_data_1(image_list: &str, ground_truth: &str, images: &mut types::VectorOfString, face_points: &mut dyn core::ToOutputArray, offset: f32) -> Result<bool> {
string_arg!(image_list);
string_arg!(ground_truth);
output_array_arg!(face_points);
unsafe { sys::cv_face_loadTrainingData_String_String_vector_String_X_const__OutputArrayX_float(image_list.as_ptr() as _, ground_truth.as_ptr() as _, images.as_raw_VectorOfString(), face_points.as_raw__OutputArray(), offset) }.into_result()
}
pub fn load_training_data(filename: &str, images: &mut types::VectorOfString, face_points: &mut dyn core::ToOutputArray, delim: i8, offset: f32) -> Result<bool> {
string_arg!(filename);
output_array_arg!(face_points);
unsafe { sys::cv_face_loadTrainingData_String_vector_String_X_const__OutputArrayX_char_float(filename.as_ptr() as _, images.as_raw_VectorOfString(), face_points.as_raw__OutputArray(), delim, offset) }.into_result()
}
pub fn load_training_data_2(filename: types::VectorOfString, trainlandmarks: &mut types::VectorOfVectorOfPoint2f, trainimages: &mut types::VectorOfString) -> Result<bool> {
unsafe { sys::cv_face_loadTrainingData_vector_String__vector_vector_Point2f__X_vector_String_X(filename.as_raw_VectorOfString(), trainlandmarks.as_raw_VectorOfVectorOfPoint2f(), trainimages.as_raw_VectorOfString()) }.into_result()
}
pub trait BIF: core::AlgorithmTrait {
fn as_raw_BIF(&self) -> *mut c_void;
fn get_num_bands(&self) -> Result<i32> {
unsafe { sys::cv_face_BIF_getNumBands_const(self.as_raw_BIF()) }.into_result()
}
fn get_num_rotations(&self) -> Result<i32> {
unsafe { sys::cv_face_BIF_getNumRotations_const(self.as_raw_BIF()) }.into_result()
}
fn compute(&self, image: &dyn core::ToInputArray, features: &mut dyn core::ToOutputArray) -> Result<()> {
input_array_arg!(image);
output_array_arg!(features);
unsafe { sys::cv_face_BIF_compute_const_const__InputArrayX_const__OutputArrayX(self.as_raw_BIF(), image.as_raw__InputArray(), features.as_raw__OutputArray()) }.into_result()
}
}
impl dyn BIF + '_ {
pub fn create(num_bands: i32, num_rotations: i32) -> Result<types::PtrOfBIF> {
unsafe { sys::cv_face_BIF_create_int_int(num_bands, num_rotations) }.into_result().map(|ptr| types::PtrOfBIF { ptr })
}
}
pub trait BasicFaceRecognizer: crate::face::FaceRecognizer {
fn as_raw_BasicFaceRecognizer(&self) -> *mut c_void;
fn get_num_components(&self) -> Result<i32> {
unsafe { sys::cv_face_BasicFaceRecognizer_getNumComponents_const(self.as_raw_BasicFaceRecognizer()) }.into_result()
}
fn set_num_components(&mut self, val: i32) -> Result<()> {
unsafe { sys::cv_face_BasicFaceRecognizer_setNumComponents_int(self.as_raw_BasicFaceRecognizer(), val) }.into_result()
}
fn get_threshold(&self) -> Result<f64> {
unsafe { sys::cv_face_BasicFaceRecognizer_getThreshold_const(self.as_raw_BasicFaceRecognizer()) }.into_result()
}
fn set_threshold(&mut self, val: f64) -> Result<()> {
unsafe { sys::cv_face_BasicFaceRecognizer_setThreshold_double(self.as_raw_BasicFaceRecognizer(), val) }.into_result()
}
fn get_projections(&self) -> Result<types::VectorOfMat> {
unsafe { sys::cv_face_BasicFaceRecognizer_getProjections_const(self.as_raw_BasicFaceRecognizer()) }.into_result().map(|ptr| types::VectorOfMat { ptr })
}
fn get_labels(&self) -> Result<core::Mat> {
unsafe { sys::cv_face_BasicFaceRecognizer_getLabels_const(self.as_raw_BasicFaceRecognizer()) }.into_result().map(|ptr| core::Mat { ptr })
}
fn get_eigen_values(&self) -> Result<core::Mat> {
unsafe { sys::cv_face_BasicFaceRecognizer_getEigenValues_const(self.as_raw_BasicFaceRecognizer()) }.into_result().map(|ptr| core::Mat { ptr })
}
fn get_eigen_vectors(&self) -> Result<core::Mat> {
unsafe { sys::cv_face_BasicFaceRecognizer_getEigenVectors_const(self.as_raw_BasicFaceRecognizer()) }.into_result().map(|ptr| core::Mat { ptr })
}
fn get_mean(&self) -> Result<core::Mat> {
unsafe { sys::cv_face_BasicFaceRecognizer_getMean_const(self.as_raw_BasicFaceRecognizer()) }.into_result().map(|ptr| core::Mat { ptr })
}
fn read(&mut self, fn_: &core::FileNode) -> Result<()> {
unsafe { sys::cv_face_BasicFaceRecognizer_read_const_FileNodeX(self.as_raw_BasicFaceRecognizer(), fn_.as_raw_FileNode()) }.into_result()
}
fn write(&self, fs: &mut core::FileStorage) -> Result<()> {
unsafe { sys::cv_face_BasicFaceRecognizer_write_const_FileStorageX(self.as_raw_BasicFaceRecognizer(), fs.as_raw_FileStorage()) }.into_result()
}
fn empty(&self) -> Result<bool> {
unsafe { sys::cv_face_BasicFaceRecognizer_empty_const(self.as_raw_BasicFaceRecognizer()) }.into_result()
}
}
pub trait CParamsTrait {
fn as_raw_CParams(&self) -> *mut c_void;
fn cascade(&self) -> String {
unsafe { sys::cv_face_CParams_cascade_const(self.as_raw_CParams()) }.into_result().map(|s| unsafe { crate::templ::receive_string(s as *mut String) }).expect("Infallible function failed: cascade")
}
fn set_cascade(&mut self, val: &str) -> () {
string_arg_infallible!(val);
unsafe { sys::cv_face_CParams_setCascade_String(self.as_raw_CParams(), val.as_ptr() as _) }.into_result().expect("Infallible function failed: set_cascade")
}
fn scale_factor(&self) -> f64 {
unsafe { sys::cv_face_CParams_scaleFactor_const(self.as_raw_CParams()) }.into_result().expect("Infallible function failed: scale_factor")
}
fn set_scale_factor(&mut self, val: f64) -> () {
unsafe { sys::cv_face_CParams_setScaleFactor_double(self.as_raw_CParams(), val) }.into_result().expect("Infallible function failed: set_scale_factor")
}
fn min_neighbors(&self) -> i32 {
unsafe { sys::cv_face_CParams_minNeighbors_const(self.as_raw_CParams()) }.into_result().expect("Infallible function failed: min_neighbors")
}
fn set_min_neighbors(&mut self, val: i32) -> () {
unsafe { sys::cv_face_CParams_setMinNeighbors_int(self.as_raw_CParams(), val) }.into_result().expect("Infallible function failed: set_min_neighbors")
}
fn min_size(&self) -> core::Size {
unsafe { sys::cv_face_CParams_minSize_const(self.as_raw_CParams()) }.into_result().expect("Infallible function failed: min_size")
}
fn set_min_size(&mut self, val: core::Size) -> () {
unsafe { sys::cv_face_CParams_setMinSize_Size(self.as_raw_CParams(), &val) }.into_result().expect("Infallible function failed: set_min_size")
}
fn max_size(&self) -> core::Size {
unsafe { sys::cv_face_CParams_maxSize_const(self.as_raw_CParams()) }.into_result().expect("Infallible function failed: max_size")
}
fn set_max_size(&mut self, val: core::Size) -> () {
unsafe { sys::cv_face_CParams_setMaxSize_Size(self.as_raw_CParams(), &val) }.into_result().expect("Infallible function failed: set_max_size")
}
fn face_cascade(&mut self) -> crate::objdetect::CascadeClassifier {
unsafe { sys::cv_face_CParams_face_cascade(self.as_raw_CParams()) }.into_result().map(|ptr| crate::objdetect::CascadeClassifier { ptr }).expect("Infallible function failed: face_cascade")
}
fn set_face_cascade(&mut self, val: crate::objdetect::CascadeClassifier) -> () {
unsafe { sys::cv_face_CParams_setFace_cascade_CascadeClassifier(self.as_raw_CParams(), val.as_raw_CascadeClassifier()) }.into_result().expect("Infallible function failed: set_face_cascade")
}
}
pub struct CParams {
pub(crate) ptr: *mut c_void
}
impl Drop for CParams {
fn drop(&mut self) {
extern "C" { fn cv_CParams_delete(instance: *mut c_void); }
unsafe { cv_CParams_delete(self.as_raw_CParams()) };
}
}
impl CParams {
pub fn as_raw_CParams(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Self { ptr }
}
}
unsafe impl Send for CParams {}
impl crate::face::CParamsTrait for CParams {
fn as_raw_CParams(&self) -> *mut c_void { self.ptr }
}
impl CParams {
pub fn new(cascade_model: &str, sf: f64, min_n: i32, min_sz: core::Size, max_sz: core::Size) -> Result<crate::face::CParams> {
string_arg!(cascade_model);
unsafe { sys::cv_face_CParams_CParams_String_double_int_Size_Size(cascade_model.as_ptr() as _, sf, min_n, &min_sz, &max_sz) }.into_result().map(|ptr| crate::face::CParams { ptr })
}
}
pub trait EigenFaceRecognizer: crate::face::BasicFaceRecognizer {
fn as_raw_EigenFaceRecognizer(&self) -> *mut c_void;
}
impl dyn EigenFaceRecognizer + '_ {
pub fn create(num_components: i32, threshold: f64) -> Result<types::PtrOfEigenFaceRecognizer> {
unsafe { sys::cv_face_EigenFaceRecognizer_create_int_double(num_components, threshold) }.into_result().map(|ptr| types::PtrOfEigenFaceRecognizer { ptr })
}
}
pub trait FaceRecognizer: core::AlgorithmTrait {
fn as_raw_FaceRecognizer(&self) -> *mut c_void;
fn train(&mut self, src: &dyn core::ToInputArray, labels: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
input_array_arg!(labels);
unsafe { sys::cv_face_FaceRecognizer_train_const__InputArrayX_const__InputArrayX(self.as_raw_FaceRecognizer(), src.as_raw__InputArray(), labels.as_raw__InputArray()) }.into_result()
}
fn update(&mut self, src: &dyn core::ToInputArray, labels: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
input_array_arg!(labels);
unsafe { sys::cv_face_FaceRecognizer_update_const__InputArrayX_const__InputArrayX(self.as_raw_FaceRecognizer(), src.as_raw__InputArray(), labels.as_raw__InputArray()) }.into_result()
}
fn predict_label(&self, src: &dyn core::ToInputArray) -> Result<i32> {
input_array_arg!(src);
unsafe { sys::cv_face_FaceRecognizer_predict_const_const__InputArrayX(self.as_raw_FaceRecognizer(), src.as_raw__InputArray()) }.into_result()
}
fn predict(&self, src: &dyn core::ToInputArray, label: &mut i32, confidence: &mut f64) -> Result<()> {
input_array_arg!(src);
unsafe { sys::cv_face_FaceRecognizer_predict_const_const__InputArrayX_intX_doubleX(self.as_raw_FaceRecognizer(), src.as_raw__InputArray(), label, confidence) }.into_result()
}
fn predict_collect(&self, src: &dyn core::ToInputArray, collector: types::PtrOfPredictCollector) -> Result<()> {
input_array_arg!(src);
unsafe { sys::cv_face_FaceRecognizer_predict_const_const__InputArrayX_Ptr_PredictCollector_(self.as_raw_FaceRecognizer(), src.as_raw__InputArray(), collector.as_raw_PtrOfPredictCollector()) }.into_result()
}
fn write(&self, filename: &str) -> Result<()> {
string_arg!(filename);
unsafe { sys::cv_face_FaceRecognizer_write_const_const_StringX(self.as_raw_FaceRecognizer(), filename.as_ptr()) }.into_result()
}
fn read(&mut self, filename: &str) -> Result<()> {
string_arg!(filename);
unsafe { sys::cv_face_FaceRecognizer_read_const_StringX(self.as_raw_FaceRecognizer(), filename.as_ptr()) }.into_result()
}
fn write_1(&self, fs: &mut core::FileStorage) -> Result<()> {
unsafe { sys::cv_face_FaceRecognizer_write_const_FileStorageX(self.as_raw_FaceRecognizer(), fs.as_raw_FileStorage()) }.into_result()
}
fn read_1(&mut self, fn_: &core::FileNode) -> Result<()> {
unsafe { sys::cv_face_FaceRecognizer_read_const_FileNodeX(self.as_raw_FaceRecognizer(), fn_.as_raw_FileNode()) }.into_result()
}
fn empty(&self) -> Result<bool> {
unsafe { sys::cv_face_FaceRecognizer_empty_const(self.as_raw_FaceRecognizer()) }.into_result()
}
fn set_label_info(&mut self, label: i32, str_info: &str) -> Result<()> {
string_arg!(str_info);
unsafe { sys::cv_face_FaceRecognizer_setLabelInfo_int_const_StringX(self.as_raw_FaceRecognizer(), label, str_info.as_ptr()) }.into_result()
}
fn get_label_info(&self, label: i32) -> Result<String> {
unsafe { sys::cv_face_FaceRecognizer_getLabelInfo_const_int(self.as_raw_FaceRecognizer(), label) }.into_result().map(|s| unsafe { crate::templ::receive_string(s as *mut String) })
}
fn get_labels_by_string(&self, str: &str) -> Result<types::VectorOfi32> {
string_arg!(str);
unsafe { sys::cv_face_FaceRecognizer_getLabelsByString_const_const_StringX(self.as_raw_FaceRecognizer(), str.as_ptr()) }.into_result().map(|ptr| types::VectorOfi32 { ptr })
}
fn get_threshold(&self) -> Result<f64> {
unsafe { sys::cv_face_FaceRecognizer_getThreshold_const(self.as_raw_FaceRecognizer()) }.into_result()
}
fn set_threshold(&mut self, val: f64) -> Result<()> {
unsafe { sys::cv_face_FaceRecognizer_setThreshold_double(self.as_raw_FaceRecognizer(), val) }.into_result()
}
}
pub trait Facemark: core::AlgorithmTrait {
fn as_raw_Facemark(&self) -> *mut c_void;
fn load_model(&mut self, model: &str) -> Result<()> {
string_arg!(model);
unsafe { sys::cv_face_Facemark_loadModel_String(self.as_raw_Facemark(), model.as_ptr() as _) }.into_result()
}
fn fit(&mut self, image: &dyn core::ToInputArray, faces: &dyn core::ToInputArray, landmarks: &mut dyn core::ToOutputArray) -> Result<bool> {
input_array_arg!(image);
input_array_arg!(faces);
output_array_arg!(landmarks);
unsafe { sys::cv_face_Facemark_fit_const__InputArrayX_const__InputArrayX_const__OutputArrayX(self.as_raw_Facemark(), image.as_raw__InputArray(), faces.as_raw__InputArray(), landmarks.as_raw__OutputArray()) }.into_result()
}
}
pub trait FacemarkAAM: crate::face::FacemarkTrain {
fn as_raw_FacemarkAAM(&self) -> *mut c_void;
fn fit_config(&mut self, image: &dyn core::ToInputArray, roi: &dyn core::ToInputArray, _landmarks: &mut dyn core::ToOutputArray, runtime_params: &types::VectorOfFacemarkAAM_Config) -> Result<bool> {
input_array_arg!(image);
input_array_arg!(roi);
output_array_arg!(_landmarks);
unsafe { sys::cv_face_FacemarkAAM_fitConfig_const__InputArrayX_const__InputArrayX_const__OutputArrayX_const_vector_Config_X(self.as_raw_FacemarkAAM(), image.as_raw__InputArray(), roi.as_raw__InputArray(), _landmarks.as_raw__OutputArray(), runtime_params.as_raw_VectorOfFacemarkAAM_Config()) }.into_result()
}
}
impl dyn FacemarkAAM + '_ {
pub fn create(parameters: &crate::face::FacemarkAAM_Params) -> Result<types::PtrOfFacemarkAAM> {
unsafe { sys::cv_face_FacemarkAAM_create_const_ParamsX(parameters.as_raw_FacemarkAAM_Params()) }.into_result().map(|ptr| types::PtrOfFacemarkAAM { ptr })
}
}
pub trait FacemarkAAM_ConfigTrait {
fn as_raw_FacemarkAAM_Config(&self) -> *mut c_void;
fn r(&mut self) -> core::Mat {
unsafe { sys::cv_face_FacemarkAAM_Config_R(self.as_raw_FacemarkAAM_Config()) }.into_result().map(|ptr| core::Mat { ptr }).expect("Infallible function failed: r")
}
fn set_r(&mut self, val: core::Mat) -> () {
unsafe { sys::cv_face_FacemarkAAM_Config_setR_Mat(self.as_raw_FacemarkAAM_Config(), val.as_raw_Mat()) }.into_result().expect("Infallible function failed: set_r")
}
fn t(&self) -> core::Point2f {
unsafe { sys::cv_face_FacemarkAAM_Config_t_const(self.as_raw_FacemarkAAM_Config()) }.into_result().expect("Infallible function failed: t")
}
fn set_t(&mut self, val: core::Point2f) -> () {
unsafe { sys::cv_face_FacemarkAAM_Config_setT_Point2f(self.as_raw_FacemarkAAM_Config(), &val) }.into_result().expect("Infallible function failed: set_t")
}
fn scale(&self) -> f32 {
unsafe { sys::cv_face_FacemarkAAM_Config_scale_const(self.as_raw_FacemarkAAM_Config()) }.into_result().expect("Infallible function failed: scale")
}
fn set_scale(&mut self, val: f32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Config_setScale_float(self.as_raw_FacemarkAAM_Config(), val) }.into_result().expect("Infallible function failed: set_scale")
}
fn model_scale_idx(&self) -> i32 {
unsafe { sys::cv_face_FacemarkAAM_Config_model_scale_idx_const(self.as_raw_FacemarkAAM_Config()) }.into_result().expect("Infallible function failed: model_scale_idx")
}
fn set_model_scale_idx(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Config_setModel_scale_idx_int(self.as_raw_FacemarkAAM_Config(), val) }.into_result().expect("Infallible function failed: set_model_scale_idx")
}
}
pub struct FacemarkAAM_Config {
pub(crate) ptr: *mut c_void
}
impl Drop for FacemarkAAM_Config {
fn drop(&mut self) {
extern "C" { fn cv_FacemarkAAM_Config_delete(instance: *mut c_void); }
unsafe { cv_FacemarkAAM_Config_delete(self.as_raw_FacemarkAAM_Config()) };
}
}
impl FacemarkAAM_Config {
pub fn as_raw_FacemarkAAM_Config(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Self { ptr }
}
}
unsafe impl Send for FacemarkAAM_Config {}
impl crate::face::FacemarkAAM_ConfigTrait for FacemarkAAM_Config {
fn as_raw_FacemarkAAM_Config(&self) -> *mut c_void { self.ptr }
}
impl FacemarkAAM_Config {
pub fn new(rot: core::Mat, trans: core::Point2f, scaling: f32, scale_id: i32) -> Result<crate::face::FacemarkAAM_Config> {
unsafe { sys::cv_face_FacemarkAAM_Config_Config_Mat_Point2f_float_int(rot.as_raw_Mat(), &trans, scaling, scale_id) }.into_result().map(|ptr| crate::face::FacemarkAAM_Config { ptr })
}
}
pub trait FacemarkAAM_DataTrait {
fn as_raw_FacemarkAAM_Data(&self) -> *mut c_void;
fn s0(&mut self) -> types::VectorOfPoint2f {
unsafe { sys::cv_face_FacemarkAAM_Data_s0(self.as_raw_FacemarkAAM_Data()) }.into_result().map(|ptr| types::VectorOfPoint2f { ptr }).expect("Infallible function failed: s0")
}
fn set_s0(&mut self, val: types::VectorOfPoint2f) -> () {
unsafe { sys::cv_face_FacemarkAAM_Data_setS0_vector_Point2f_(self.as_raw_FacemarkAAM_Data(), val.as_raw_VectorOfPoint2f()) }.into_result().expect("Infallible function failed: set_s0")
}
}
pub struct FacemarkAAM_Data {
pub(crate) ptr: *mut c_void
}
impl Drop for FacemarkAAM_Data {
fn drop(&mut self) {
extern "C" { fn cv_FacemarkAAM_Data_delete(instance: *mut c_void); }
unsafe { cv_FacemarkAAM_Data_delete(self.as_raw_FacemarkAAM_Data()) };
}
}
impl FacemarkAAM_Data {
pub fn as_raw_FacemarkAAM_Data(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Self { ptr }
}
}
unsafe impl Send for FacemarkAAM_Data {}
impl crate::face::FacemarkAAM_DataTrait for FacemarkAAM_Data {
fn as_raw_FacemarkAAM_Data(&self) -> *mut c_void { self.ptr }
}
impl FacemarkAAM_Data {
}
pub trait FacemarkAAM_ModelTrait {
fn as_raw_FacemarkAAM_Model(&self) -> *mut c_void;
fn scales(&mut self) -> types::VectorOff32 {
unsafe { sys::cv_face_FacemarkAAM_Model_scales(self.as_raw_FacemarkAAM_Model()) }.into_result().map(|ptr| types::VectorOff32 { ptr }).expect("Infallible function failed: scales")
}
fn set_scales(&mut self, val: types::VectorOff32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_setScales_vector_float_(self.as_raw_FacemarkAAM_Model(), val.as_raw_VectorOff32()) }.into_result().expect("Infallible function failed: set_scales")
}
fn triangles(&mut self) -> types::VectorOfVec3i {
unsafe { sys::cv_face_FacemarkAAM_Model_triangles(self.as_raw_FacemarkAAM_Model()) }.into_result().map(|ptr| types::VectorOfVec3i { ptr }).expect("Infallible function failed: triangles")
}
fn set_triangles(&mut self, val: types::VectorOfVec3i) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_setTriangles_vector_Vec3i_(self.as_raw_FacemarkAAM_Model(), val.as_raw_VectorOfVec3i()) }.into_result().expect("Infallible function failed: set_triangles")
}
fn textures(&mut self) -> types::VectorOfFacemarkAAM_Model_Texture {
unsafe { sys::cv_face_FacemarkAAM_Model_textures(self.as_raw_FacemarkAAM_Model()) }.into_result().map(|ptr| types::VectorOfFacemarkAAM_Model_Texture { ptr }).expect("Infallible function failed: textures")
}
fn set_textures(&mut self, val: types::VectorOfFacemarkAAM_Model_Texture) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_setTextures_vector_Texture_(self.as_raw_FacemarkAAM_Model(), val.as_raw_VectorOfFacemarkAAM_Model_Texture()) }.into_result().expect("Infallible function failed: set_textures")
}
fn s0(&mut self) -> types::VectorOfPoint2f {
unsafe { sys::cv_face_FacemarkAAM_Model_s0(self.as_raw_FacemarkAAM_Model()) }.into_result().map(|ptr| types::VectorOfPoint2f { ptr }).expect("Infallible function failed: s0")
}
fn set_s0(&mut self, val: types::VectorOfPoint2f) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_setS0_vector_Point2f_(self.as_raw_FacemarkAAM_Model(), val.as_raw_VectorOfPoint2f()) }.into_result().expect("Infallible function failed: set_s0")
}
fn s(&mut self) -> core::Mat {
unsafe { sys::cv_face_FacemarkAAM_Model_S(self.as_raw_FacemarkAAM_Model()) }.into_result().map(|ptr| core::Mat { ptr }).expect("Infallible function failed: s")
}
fn set_s(&mut self, val: core::Mat) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_setS_Mat(self.as_raw_FacemarkAAM_Model(), val.as_raw_Mat()) }.into_result().expect("Infallible function failed: set_s")
}
fn q(&mut self) -> core::Mat {
unsafe { sys::cv_face_FacemarkAAM_Model_Q(self.as_raw_FacemarkAAM_Model()) }.into_result().map(|ptr| core::Mat { ptr }).expect("Infallible function failed: q")
}
fn set_q(&mut self, val: core::Mat) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_setQ_Mat(self.as_raw_FacemarkAAM_Model(), val.as_raw_Mat()) }.into_result().expect("Infallible function failed: set_q")
}
}
pub struct FacemarkAAM_Model {
pub(crate) ptr: *mut c_void
}
impl Drop for FacemarkAAM_Model {
fn drop(&mut self) {
extern "C" { fn cv_FacemarkAAM_Model_delete(instance: *mut c_void); }
unsafe { cv_FacemarkAAM_Model_delete(self.as_raw_FacemarkAAM_Model()) };
}
}
impl FacemarkAAM_Model {
pub fn as_raw_FacemarkAAM_Model(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Self { ptr }
}
}
unsafe impl Send for FacemarkAAM_Model {}
impl crate::face::FacemarkAAM_ModelTrait for FacemarkAAM_Model {
fn as_raw_FacemarkAAM_Model(&self) -> *mut c_void { self.ptr }
}
impl FacemarkAAM_Model {
}
pub trait FacemarkAAM_Model_TextureTrait {
fn as_raw_FacemarkAAM_Model_Texture(&self) -> *mut c_void;
fn max_m(&self) -> i32 {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_max_m_const(self.as_raw_FacemarkAAM_Model_Texture()) }.into_result().expect("Infallible function failed: max_m")
}
fn set_max_m(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_setMax_m_int(self.as_raw_FacemarkAAM_Model_Texture(), val) }.into_result().expect("Infallible function failed: set_max_m")
}
fn resolution(&self) -> core::Rect {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_resolution_const(self.as_raw_FacemarkAAM_Model_Texture()) }.into_result().expect("Infallible function failed: resolution")
}
fn set_resolution(&mut self, val: core::Rect) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_setResolution_Rect(self.as_raw_FacemarkAAM_Model_Texture(), &val) }.into_result().expect("Infallible function failed: set_resolution")
}
fn a(&mut self) -> core::Mat {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_A(self.as_raw_FacemarkAAM_Model_Texture()) }.into_result().map(|ptr| core::Mat { ptr }).expect("Infallible function failed: a")
}
fn set_a(&mut self, val: core::Mat) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_setA_Mat(self.as_raw_FacemarkAAM_Model_Texture(), val.as_raw_Mat()) }.into_result().expect("Infallible function failed: set_a")
}
fn a0(&mut self) -> core::Mat {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_A0(self.as_raw_FacemarkAAM_Model_Texture()) }.into_result().map(|ptr| core::Mat { ptr }).expect("Infallible function failed: a0")
}
fn set_a0(&mut self, val: core::Mat) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_setA0_Mat(self.as_raw_FacemarkAAM_Model_Texture(), val.as_raw_Mat()) }.into_result().expect("Infallible function failed: set_a0")
}
fn aa(&mut self) -> core::Mat {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_AA(self.as_raw_FacemarkAAM_Model_Texture()) }.into_result().map(|ptr| core::Mat { ptr }).expect("Infallible function failed: aa")
}
fn set_aa(&mut self, val: core::Mat) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_setAA_Mat(self.as_raw_FacemarkAAM_Model_Texture(), val.as_raw_Mat()) }.into_result().expect("Infallible function failed: set_aa")
}
fn aa0(&mut self) -> core::Mat {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_AA0(self.as_raw_FacemarkAAM_Model_Texture()) }.into_result().map(|ptr| core::Mat { ptr }).expect("Infallible function failed: aa0")
}
fn set_aa0(&mut self, val: core::Mat) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_setAA0_Mat(self.as_raw_FacemarkAAM_Model_Texture(), val.as_raw_Mat()) }.into_result().expect("Infallible function failed: set_aa0")
}
fn texture_idx(&mut self) -> types::VectorOfVectorOfPoint {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_textureIdx(self.as_raw_FacemarkAAM_Model_Texture()) }.into_result().map(|ptr| types::VectorOfVectorOfPoint { ptr }).expect("Infallible function failed: texture_idx")
}
fn set_texture_idx(&mut self, val: types::VectorOfVectorOfPoint) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_setTextureIdx_vector_vector_Point__(self.as_raw_FacemarkAAM_Model_Texture(), val.as_raw_VectorOfVectorOfPoint()) }.into_result().expect("Infallible function failed: set_texture_idx")
}
fn base_shape(&mut self) -> types::VectorOfPoint2f {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_base_shape(self.as_raw_FacemarkAAM_Model_Texture()) }.into_result().map(|ptr| types::VectorOfPoint2f { ptr }).expect("Infallible function failed: base_shape")
}
fn set_base_shape(&mut self, val: types::VectorOfPoint2f) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_setBase_shape_vector_Point2f_(self.as_raw_FacemarkAAM_Model_Texture(), val.as_raw_VectorOfPoint2f()) }.into_result().expect("Infallible function failed: set_base_shape")
}
fn ind1(&mut self) -> types::VectorOfi32 {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_ind1(self.as_raw_FacemarkAAM_Model_Texture()) }.into_result().map(|ptr| types::VectorOfi32 { ptr }).expect("Infallible function failed: ind1")
}
fn set_ind1(&mut self, val: types::VectorOfi32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_setInd1_vector_int_(self.as_raw_FacemarkAAM_Model_Texture(), val.as_raw_VectorOfi32()) }.into_result().expect("Infallible function failed: set_ind1")
}
fn ind2(&mut self) -> types::VectorOfi32 {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_ind2(self.as_raw_FacemarkAAM_Model_Texture()) }.into_result().map(|ptr| types::VectorOfi32 { ptr }).expect("Infallible function failed: ind2")
}
fn set_ind2(&mut self, val: types::VectorOfi32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Model_Texture_setInd2_vector_int_(self.as_raw_FacemarkAAM_Model_Texture(), val.as_raw_VectorOfi32()) }.into_result().expect("Infallible function failed: set_ind2")
}
}
pub struct FacemarkAAM_Model_Texture {
pub(crate) ptr: *mut c_void
}
impl Drop for FacemarkAAM_Model_Texture {
fn drop(&mut self) {
extern "C" { fn cv_FacemarkAAM_Model_Texture_delete(instance: *mut c_void); }
unsafe { cv_FacemarkAAM_Model_Texture_delete(self.as_raw_FacemarkAAM_Model_Texture()) };
}
}
impl FacemarkAAM_Model_Texture {
pub fn as_raw_FacemarkAAM_Model_Texture(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Self { ptr }
}
}
unsafe impl Send for FacemarkAAM_Model_Texture {}
impl crate::face::FacemarkAAM_Model_TextureTrait for FacemarkAAM_Model_Texture {
fn as_raw_FacemarkAAM_Model_Texture(&self) -> *mut c_void { self.ptr }
}
impl FacemarkAAM_Model_Texture {
}
pub trait FacemarkAAM_ParamsTrait {
fn as_raw_FacemarkAAM_Params(&self) -> *mut c_void;
fn model_filename(&self) -> String {
unsafe { sys::cv_face_FacemarkAAM_Params_model_filename_const(self.as_raw_FacemarkAAM_Params()) }.into_result().map(|s| unsafe { crate::templ::receive_string(s as *mut String) }).expect("Infallible function failed: model_filename")
}
fn set_model_filename(&mut self, val: &str) -> () {
string_arg_infallible!(val);
unsafe { sys::cv_face_FacemarkAAM_Params_setModel_filename_string(self.as_raw_FacemarkAAM_Params(), val.as_ptr() as _) }.into_result().expect("Infallible function failed: set_model_filename")
}
fn m(&self) -> i32 {
unsafe { sys::cv_face_FacemarkAAM_Params_m_const(self.as_raw_FacemarkAAM_Params()) }.into_result().expect("Infallible function failed: m")
}
fn set_m(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Params_setM_int(self.as_raw_FacemarkAAM_Params(), val) }.into_result().expect("Infallible function failed: set_m")
}
fn n(&self) -> i32 {
unsafe { sys::cv_face_FacemarkAAM_Params_n_const(self.as_raw_FacemarkAAM_Params()) }.into_result().expect("Infallible function failed: n")
}
fn set_n(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Params_setN_int(self.as_raw_FacemarkAAM_Params(), val) }.into_result().expect("Infallible function failed: set_n")
}
fn n_iter(&self) -> i32 {
unsafe { sys::cv_face_FacemarkAAM_Params_n_iter_const(self.as_raw_FacemarkAAM_Params()) }.into_result().expect("Infallible function failed: n_iter")
}
fn set_n_iter(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Params_setN_iter_int(self.as_raw_FacemarkAAM_Params(), val) }.into_result().expect("Infallible function failed: set_n_iter")
}
fn verbose(&self) -> bool {
unsafe { sys::cv_face_FacemarkAAM_Params_verbose_const(self.as_raw_FacemarkAAM_Params()) }.into_result().expect("Infallible function failed: verbose")
}
fn set_verbose(&mut self, val: bool) -> () {
unsafe { sys::cv_face_FacemarkAAM_Params_setVerbose_bool(self.as_raw_FacemarkAAM_Params(), val) }.into_result().expect("Infallible function failed: set_verbose")
}
fn save_model(&self) -> bool {
unsafe { sys::cv_face_FacemarkAAM_Params_save_model_const(self.as_raw_FacemarkAAM_Params()) }.into_result().expect("Infallible function failed: save_model")
}
fn set_save_model(&mut self, val: bool) -> () {
unsafe { sys::cv_face_FacemarkAAM_Params_setSave_model_bool(self.as_raw_FacemarkAAM_Params(), val) }.into_result().expect("Infallible function failed: set_save_model")
}
fn max_m(&self) -> i32 {
unsafe { sys::cv_face_FacemarkAAM_Params_max_m_const(self.as_raw_FacemarkAAM_Params()) }.into_result().expect("Infallible function failed: max_m")
}
fn set_max_m(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Params_setMax_m_int(self.as_raw_FacemarkAAM_Params(), val) }.into_result().expect("Infallible function failed: set_max_m")
}
fn max_n(&self) -> i32 {
unsafe { sys::cv_face_FacemarkAAM_Params_max_n_const(self.as_raw_FacemarkAAM_Params()) }.into_result().expect("Infallible function failed: max_n")
}
fn set_max_n(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Params_setMax_n_int(self.as_raw_FacemarkAAM_Params(), val) }.into_result().expect("Infallible function failed: set_max_n")
}
fn texture_max_m(&self) -> i32 {
unsafe { sys::cv_face_FacemarkAAM_Params_texture_max_m_const(self.as_raw_FacemarkAAM_Params()) }.into_result().expect("Infallible function failed: texture_max_m")
}
fn set_texture_max_m(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Params_setTexture_max_m_int(self.as_raw_FacemarkAAM_Params(), val) }.into_result().expect("Infallible function failed: set_texture_max_m")
}
fn scales(&mut self) -> types::VectorOff32 {
unsafe { sys::cv_face_FacemarkAAM_Params_scales(self.as_raw_FacemarkAAM_Params()) }.into_result().map(|ptr| types::VectorOff32 { ptr }).expect("Infallible function failed: scales")
}
fn set_scales(&mut self, val: types::VectorOff32) -> () {
unsafe { sys::cv_face_FacemarkAAM_Params_setScales_vector_float_(self.as_raw_FacemarkAAM_Params(), val.as_raw_VectorOff32()) }.into_result().expect("Infallible function failed: set_scales")
}
fn read(&mut self, unnamed: &core::FileNode) -> Result<()> {
unsafe { sys::cv_face_FacemarkAAM_Params_read_const_FileNodeX(self.as_raw_FacemarkAAM_Params(), unnamed.as_raw_FileNode()) }.into_result()
}
fn write(&self, unnamed: &mut core::FileStorage) -> Result<()> {
unsafe { sys::cv_face_FacemarkAAM_Params_write_const_FileStorageX(self.as_raw_FacemarkAAM_Params(), unnamed.as_raw_FileStorage()) }.into_result()
}
}
pub struct FacemarkAAM_Params {
pub(crate) ptr: *mut c_void
}
impl Drop for FacemarkAAM_Params {
fn drop(&mut self) {
extern "C" { fn cv_FacemarkAAM_Params_delete(instance: *mut c_void); }
unsafe { cv_FacemarkAAM_Params_delete(self.as_raw_FacemarkAAM_Params()) };
}
}
impl FacemarkAAM_Params {
pub fn as_raw_FacemarkAAM_Params(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Self { ptr }
}
}
unsafe impl Send for FacemarkAAM_Params {}
impl crate::face::FacemarkAAM_ParamsTrait for FacemarkAAM_Params {
fn as_raw_FacemarkAAM_Params(&self) -> *mut c_void { self.ptr }
}
impl FacemarkAAM_Params {
pub fn default() -> Result<crate::face::FacemarkAAM_Params> {
unsafe { sys::cv_face_FacemarkAAM_Params_Params() }.into_result().map(|ptr| crate::face::FacemarkAAM_Params { ptr })
}
}
pub trait FacemarkKazemi: crate::face::Facemark {
fn as_raw_FacemarkKazemi(&self) -> *mut c_void;
fn training(&mut self, images: &mut types::VectorOfMat, landmarks: &mut types::VectorOfVectorOfPoint2f, configfile: &str, scale: core::Size, model_filename: &str) -> Result<bool> {
string_arg!(configfile);
string_arg!(model_filename);
unsafe { sys::cv_face_FacemarkKazemi_training_vector_Mat_X_vector_vector_Point2f__X_string_Size_string(self.as_raw_FacemarkKazemi(), images.as_raw_VectorOfMat(), landmarks.as_raw_VectorOfVectorOfPoint2f(), configfile.as_ptr() as _, &scale, model_filename.as_ptr() as _) }.into_result()
}
fn get_faces(&mut self, image: &dyn core::ToInputArray, faces: &mut dyn core::ToOutputArray) -> Result<bool> {
input_array_arg!(image);
output_array_arg!(faces);
unsafe { sys::cv_face_FacemarkKazemi_getFaces_const__InputArrayX_const__OutputArrayX(self.as_raw_FacemarkKazemi(), image.as_raw__InputArray(), faces.as_raw__OutputArray()) }.into_result()
}
}
impl dyn FacemarkKazemi + '_ {
pub fn create(parameters: &crate::face::FacemarkKazemi_Params) -> Result<types::PtrOfFacemarkKazemi> {
unsafe { sys::cv_face_FacemarkKazemi_create_const_ParamsX(parameters.as_raw_FacemarkKazemi_Params()) }.into_result().map(|ptr| types::PtrOfFacemarkKazemi { ptr })
}
}
pub trait FacemarkKazemi_ParamsTrait {
fn as_raw_FacemarkKazemi_Params(&self) -> *mut c_void;
fn cascade_depth(&self) -> u32 {
unsafe { sys::cv_face_FacemarkKazemi_Params_cascade_depth_const(self.as_raw_FacemarkKazemi_Params()) }.into_result().expect("Infallible function failed: cascade_depth")
}
fn set_cascade_depth(&mut self, val: u32) -> () {
unsafe { sys::cv_face_FacemarkKazemi_Params_setCascade_depth_unsigned_long(self.as_raw_FacemarkKazemi_Params(), val) }.into_result().expect("Infallible function failed: set_cascade_depth")
}
fn tree_depth(&self) -> u32 {
unsafe { sys::cv_face_FacemarkKazemi_Params_tree_depth_const(self.as_raw_FacemarkKazemi_Params()) }.into_result().expect("Infallible function failed: tree_depth")
}
fn set_tree_depth(&mut self, val: u32) -> () {
unsafe { sys::cv_face_FacemarkKazemi_Params_setTree_depth_unsigned_long(self.as_raw_FacemarkKazemi_Params(), val) }.into_result().expect("Infallible function failed: set_tree_depth")
}
fn num_trees_per_cascade_level(&self) -> u32 {
unsafe { sys::cv_face_FacemarkKazemi_Params_num_trees_per_cascade_level_const(self.as_raw_FacemarkKazemi_Params()) }.into_result().expect("Infallible function failed: num_trees_per_cascade_level")
}
fn set_num_trees_per_cascade_level(&mut self, val: u32) -> () {
unsafe { sys::cv_face_FacemarkKazemi_Params_setNum_trees_per_cascade_level_unsigned_long(self.as_raw_FacemarkKazemi_Params(), val) }.into_result().expect("Infallible function failed: set_num_trees_per_cascade_level")
}
fn learning_rate(&self) -> f32 {
unsafe { sys::cv_face_FacemarkKazemi_Params_learning_rate_const(self.as_raw_FacemarkKazemi_Params()) }.into_result().expect("Infallible function failed: learning_rate")
}
fn set_learning_rate(&mut self, val: f32) -> () {
unsafe { sys::cv_face_FacemarkKazemi_Params_setLearning_rate_float(self.as_raw_FacemarkKazemi_Params(), val) }.into_result().expect("Infallible function failed: set_learning_rate")
}
fn oversampling_amount(&self) -> u32 {
unsafe { sys::cv_face_FacemarkKazemi_Params_oversampling_amount_const(self.as_raw_FacemarkKazemi_Params()) }.into_result().expect("Infallible function failed: oversampling_amount")
}
fn set_oversampling_amount(&mut self, val: u32) -> () {
unsafe { sys::cv_face_FacemarkKazemi_Params_setOversampling_amount_unsigned_long(self.as_raw_FacemarkKazemi_Params(), val) }.into_result().expect("Infallible function failed: set_oversampling_amount")
}
fn num_test_coordinates(&self) -> u32 {
unsafe { sys::cv_face_FacemarkKazemi_Params_num_test_coordinates_const(self.as_raw_FacemarkKazemi_Params()) }.into_result().expect("Infallible function failed: num_test_coordinates")
}
fn set_num_test_coordinates(&mut self, val: u32) -> () {
unsafe { sys::cv_face_FacemarkKazemi_Params_setNum_test_coordinates_unsigned_long(self.as_raw_FacemarkKazemi_Params(), val) }.into_result().expect("Infallible function failed: set_num_test_coordinates")
}
fn lambda(&self) -> f32 {
unsafe { sys::cv_face_FacemarkKazemi_Params_lambda_const(self.as_raw_FacemarkKazemi_Params()) }.into_result().expect("Infallible function failed: lambda")
}
fn set_lambda(&mut self, val: f32) -> () {
unsafe { sys::cv_face_FacemarkKazemi_Params_setLambda_float(self.as_raw_FacemarkKazemi_Params(), val) }.into_result().expect("Infallible function failed: set_lambda")
}
fn num_test_splits(&self) -> u32 {
unsafe { sys::cv_face_FacemarkKazemi_Params_num_test_splits_const(self.as_raw_FacemarkKazemi_Params()) }.into_result().expect("Infallible function failed: num_test_splits")
}
fn set_num_test_splits(&mut self, val: u32) -> () {
unsafe { sys::cv_face_FacemarkKazemi_Params_setNum_test_splits_unsigned_long(self.as_raw_FacemarkKazemi_Params(), val) }.into_result().expect("Infallible function failed: set_num_test_splits")
}
fn configfile(&self) -> String {
unsafe { sys::cv_face_FacemarkKazemi_Params_configfile_const(self.as_raw_FacemarkKazemi_Params()) }.into_result().map(|s| unsafe { crate::templ::receive_string(s as *mut String) }).expect("Infallible function failed: configfile")
}
fn set_configfile(&mut self, val: &str) -> () {
string_arg_infallible!(val);
unsafe { sys::cv_face_FacemarkKazemi_Params_setConfigfile_String(self.as_raw_FacemarkKazemi_Params(), val.as_ptr() as _) }.into_result().expect("Infallible function failed: set_configfile")
}
}
pub struct FacemarkKazemi_Params {
pub(crate) ptr: *mut c_void
}
impl Drop for FacemarkKazemi_Params {
fn drop(&mut self) {
extern "C" { fn cv_FacemarkKazemi_Params_delete(instance: *mut c_void); }
unsafe { cv_FacemarkKazemi_Params_delete(self.as_raw_FacemarkKazemi_Params()) };
}
}
impl FacemarkKazemi_Params {
pub fn as_raw_FacemarkKazemi_Params(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Self { ptr }
}
}
unsafe impl Send for FacemarkKazemi_Params {}
impl crate::face::FacemarkKazemi_ParamsTrait for FacemarkKazemi_Params {
fn as_raw_FacemarkKazemi_Params(&self) -> *mut c_void { self.ptr }
}
impl FacemarkKazemi_Params {
pub fn default() -> Result<crate::face::FacemarkKazemi_Params> {
unsafe { sys::cv_face_FacemarkKazemi_Params_Params() }.into_result().map(|ptr| crate::face::FacemarkKazemi_Params { ptr })
}
}
pub trait FacemarkLBF: crate::face::FacemarkTrain {
fn as_raw_FacemarkLBF(&self) -> *mut c_void;
}
impl dyn FacemarkLBF + '_ {
pub fn create(parameters: &crate::face::FacemarkLBF_Params) -> Result<types::PtrOfFacemarkLBF> {
unsafe { sys::cv_face_FacemarkLBF_create_const_ParamsX(parameters.as_raw_FacemarkLBF_Params()) }.into_result().map(|ptr| types::PtrOfFacemarkLBF { ptr })
}
}
pub trait FacemarkLBF_ParamsTrait {
fn as_raw_FacemarkLBF_Params(&self) -> *mut c_void;
fn shape_offset(&self) -> f64 {
unsafe { sys::cv_face_FacemarkLBF_Params_shape_offset_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: shape_offset")
}
fn set_shape_offset(&mut self, val: f64) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setShape_offset_double(self.as_raw_FacemarkLBF_Params(), val) }.into_result().expect("Infallible function failed: set_shape_offset")
}
fn cascade_face(&self) -> String {
unsafe { sys::cv_face_FacemarkLBF_Params_cascade_face_const(self.as_raw_FacemarkLBF_Params()) }.into_result().map(|s| unsafe { crate::templ::receive_string(s as *mut String) }).expect("Infallible function failed: cascade_face")
}
fn set_cascade_face(&mut self, val: &str) -> () {
string_arg_infallible!(val);
unsafe { sys::cv_face_FacemarkLBF_Params_setCascade_face_String(self.as_raw_FacemarkLBF_Params(), val.as_ptr() as _) }.into_result().expect("Infallible function failed: set_cascade_face")
}
fn verbose(&self) -> bool {
unsafe { sys::cv_face_FacemarkLBF_Params_verbose_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: verbose")
}
fn set_verbose(&mut self, val: bool) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setVerbose_bool(self.as_raw_FacemarkLBF_Params(), val) }.into_result().expect("Infallible function failed: set_verbose")
}
fn n_landmarks(&self) -> i32 {
unsafe { sys::cv_face_FacemarkLBF_Params_n_landmarks_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: n_landmarks")
}
fn set_n_landmarks(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setN_landmarks_int(self.as_raw_FacemarkLBF_Params(), val) }.into_result().expect("Infallible function failed: set_n_landmarks")
}
fn init_shape_n(&self) -> i32 {
unsafe { sys::cv_face_FacemarkLBF_Params_initShape_n_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: init_shape_n")
}
fn set_init_shape_n(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setInitShape_n_int(self.as_raw_FacemarkLBF_Params(), val) }.into_result().expect("Infallible function failed: set_init_shape_n")
}
fn stages_n(&self) -> i32 {
unsafe { sys::cv_face_FacemarkLBF_Params_stages_n_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: stages_n")
}
fn set_stages_n(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setStages_n_int(self.as_raw_FacemarkLBF_Params(), val) }.into_result().expect("Infallible function failed: set_stages_n")
}
fn tree_n(&self) -> i32 {
unsafe { sys::cv_face_FacemarkLBF_Params_tree_n_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: tree_n")
}
fn set_tree_n(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setTree_n_int(self.as_raw_FacemarkLBF_Params(), val) }.into_result().expect("Infallible function failed: set_tree_n")
}
fn tree_depth(&self) -> i32 {
unsafe { sys::cv_face_FacemarkLBF_Params_tree_depth_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: tree_depth")
}
fn set_tree_depth(&mut self, val: i32) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setTree_depth_int(self.as_raw_FacemarkLBF_Params(), val) }.into_result().expect("Infallible function failed: set_tree_depth")
}
fn bagging_overlap(&self) -> f64 {
unsafe { sys::cv_face_FacemarkLBF_Params_bagging_overlap_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: bagging_overlap")
}
fn set_bagging_overlap(&mut self, val: f64) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setBagging_overlap_double(self.as_raw_FacemarkLBF_Params(), val) }.into_result().expect("Infallible function failed: set_bagging_overlap")
}
fn model_filename(&self) -> String {
unsafe { sys::cv_face_FacemarkLBF_Params_model_filename_const(self.as_raw_FacemarkLBF_Params()) }.into_result().map(|s| unsafe { crate::templ::receive_string(s as *mut String) }).expect("Infallible function failed: model_filename")
}
fn set_model_filename(&mut self, val: &str) -> () {
string_arg_infallible!(val);
unsafe { sys::cv_face_FacemarkLBF_Params_setModel_filename_string(self.as_raw_FacemarkLBF_Params(), val.as_ptr() as _) }.into_result().expect("Infallible function failed: set_model_filename")
}
fn save_model(&self) -> bool {
unsafe { sys::cv_face_FacemarkLBF_Params_save_model_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: save_model")
}
fn set_save_model(&mut self, val: bool) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setSave_model_bool(self.as_raw_FacemarkLBF_Params(), val) }.into_result().expect("Infallible function failed: set_save_model")
}
fn seed(&self) -> u32 {
unsafe { sys::cv_face_FacemarkLBF_Params_seed_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: seed")
}
fn set_seed(&mut self, val: u32) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setSeed_unsigned_int(self.as_raw_FacemarkLBF_Params(), val) }.into_result().expect("Infallible function failed: set_seed")
}
fn feats_m(&mut self) -> types::VectorOfi32 {
unsafe { sys::cv_face_FacemarkLBF_Params_feats_m(self.as_raw_FacemarkLBF_Params()) }.into_result().map(|ptr| types::VectorOfi32 { ptr }).expect("Infallible function failed: feats_m")
}
fn set_feats_m(&mut self, val: types::VectorOfi32) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setFeats_m_vector_int_(self.as_raw_FacemarkLBF_Params(), val.as_raw_VectorOfi32()) }.into_result().expect("Infallible function failed: set_feats_m")
}
fn radius_m(&mut self) -> types::VectorOff64 {
unsafe { sys::cv_face_FacemarkLBF_Params_radius_m(self.as_raw_FacemarkLBF_Params()) }.into_result().map(|ptr| types::VectorOff64 { ptr }).expect("Infallible function failed: radius_m")
}
fn set_radius_m(&mut self, val: types::VectorOff64) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setRadius_m_vector_double_(self.as_raw_FacemarkLBF_Params(), val.as_raw_VectorOff64()) }.into_result().expect("Infallible function failed: set_radius_m")
}
fn detect_roi(&self) -> core::Rect {
unsafe { sys::cv_face_FacemarkLBF_Params_detectROI_const(self.as_raw_FacemarkLBF_Params()) }.into_result().expect("Infallible function failed: detect_roi")
}
fn set_detect_roi(&mut self, val: core::Rect) -> () {
unsafe { sys::cv_face_FacemarkLBF_Params_setDetectROI_Rect(self.as_raw_FacemarkLBF_Params(), &val) }.into_result().expect("Infallible function failed: set_detect_roi")
}
fn read(&mut self, unnamed: &core::FileNode) -> Result<()> {
unsafe { sys::cv_face_FacemarkLBF_Params_read_const_FileNodeX(self.as_raw_FacemarkLBF_Params(), unnamed.as_raw_FileNode()) }.into_result()
}
fn write(&self, unnamed: &mut core::FileStorage) -> Result<()> {
unsafe { sys::cv_face_FacemarkLBF_Params_write_const_FileStorageX(self.as_raw_FacemarkLBF_Params(), unnamed.as_raw_FileStorage()) }.into_result()
}
}
pub struct FacemarkLBF_Params {
pub(crate) ptr: *mut c_void
}
impl Drop for FacemarkLBF_Params {
fn drop(&mut self) {
extern "C" { fn cv_FacemarkLBF_Params_delete(instance: *mut c_void); }
unsafe { cv_FacemarkLBF_Params_delete(self.as_raw_FacemarkLBF_Params()) };
}
}
impl FacemarkLBF_Params {
pub fn as_raw_FacemarkLBF_Params(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Self { ptr }
}
}
unsafe impl Send for FacemarkLBF_Params {}
impl crate::face::FacemarkLBF_ParamsTrait for FacemarkLBF_Params {
fn as_raw_FacemarkLBF_Params(&self) -> *mut c_void { self.ptr }
}
impl FacemarkLBF_Params {
pub fn default() -> Result<crate::face::FacemarkLBF_Params> {
unsafe { sys::cv_face_FacemarkLBF_Params_Params() }.into_result().map(|ptr| crate::face::FacemarkLBF_Params { ptr })
}
}
pub trait FacemarkTrain: crate::face::Facemark {
fn as_raw_FacemarkTrain(&self) -> *mut c_void;
fn add_training_sample(&mut self, image: &dyn core::ToInputArray, landmarks: &dyn core::ToInputArray) -> Result<bool> {
input_array_arg!(image);
input_array_arg!(landmarks);
unsafe { sys::cv_face_FacemarkTrain_addTrainingSample_const__InputArrayX_const__InputArrayX(self.as_raw_FacemarkTrain(), image.as_raw__InputArray(), landmarks.as_raw__InputArray()) }.into_result()
}
fn training(&mut self, parameters: *mut c_void) -> Result<()> {
unsafe { sys::cv_face_FacemarkTrain_training_voidX(self.as_raw_FacemarkTrain(), parameters) }.into_result()
}
fn set_face_detector(&mut self, detector: crate::face::FN_FaceDetector) -> Result<bool> {
callback_arg!(detector_trampoline(unnamed: *mut c_void, unnamed_1: *mut c_void, user_data: *mut c_void) -> bool => user_data in callbacks => detector(unnamed: *mut c_void, unnamed_1: *mut c_void) -> bool);
userdata_arg!(user_data in callbacks => detector);
unsafe { sys::cv_face_FacemarkTrain_setFaceDetector_FN_FaceDetector_voidX(self.as_raw_FacemarkTrain(), detector_trampoline, user_data) }.into_result()
}
fn get_faces(&mut self, image: &dyn core::ToInputArray, faces: &mut dyn core::ToOutputArray) -> Result<bool> {
input_array_arg!(image);
output_array_arg!(faces);
unsafe { sys::cv_face_FacemarkTrain_getFaces_const__InputArrayX_const__OutputArrayX(self.as_raw_FacemarkTrain(), image.as_raw__InputArray(), faces.as_raw__OutputArray()) }.into_result()
}
fn get_data(&mut self, items: *mut c_void) -> Result<bool> {
unsafe { sys::cv_face_FacemarkTrain_getData_voidX(self.as_raw_FacemarkTrain(), items) }.into_result()
}
}
pub trait FisherFaceRecognizer: crate::face::BasicFaceRecognizer {
fn as_raw_FisherFaceRecognizer(&self) -> *mut c_void;
}
impl dyn FisherFaceRecognizer + '_ {
pub fn create(num_components: i32, threshold: f64) -> Result<types::PtrOfFisherFaceRecognizer> {
unsafe { sys::cv_face_FisherFaceRecognizer_create_int_double(num_components, threshold) }.into_result().map(|ptr| types::PtrOfFisherFaceRecognizer { ptr })
}
}
pub trait LBPHFaceRecognizer: crate::face::FaceRecognizer {
fn as_raw_LBPHFaceRecognizer(&self) -> *mut c_void;
fn get_grid_x(&self) -> Result<i32> {
unsafe { sys::cv_face_LBPHFaceRecognizer_getGridX_const(self.as_raw_LBPHFaceRecognizer()) }.into_result()
}
fn set_grid_x(&mut self, val: i32) -> Result<()> {
unsafe { sys::cv_face_LBPHFaceRecognizer_setGridX_int(self.as_raw_LBPHFaceRecognizer(), val) }.into_result()
}
fn get_grid_y(&self) -> Result<i32> {
unsafe { sys::cv_face_LBPHFaceRecognizer_getGridY_const(self.as_raw_LBPHFaceRecognizer()) }.into_result()
}
fn set_grid_y(&mut self, val: i32) -> Result<()> {
unsafe { sys::cv_face_LBPHFaceRecognizer_setGridY_int(self.as_raw_LBPHFaceRecognizer(), val) }.into_result()
}
fn get_radius(&self) -> Result<i32> {
unsafe { sys::cv_face_LBPHFaceRecognizer_getRadius_const(self.as_raw_LBPHFaceRecognizer()) }.into_result()
}
fn set_radius(&mut self, val: i32) -> Result<()> {
unsafe { sys::cv_face_LBPHFaceRecognizer_setRadius_int(self.as_raw_LBPHFaceRecognizer(), val) }.into_result()
}
fn get_neighbors(&self) -> Result<i32> {
unsafe { sys::cv_face_LBPHFaceRecognizer_getNeighbors_const(self.as_raw_LBPHFaceRecognizer()) }.into_result()
}
fn set_neighbors(&mut self, val: i32) -> Result<()> {
unsafe { sys::cv_face_LBPHFaceRecognizer_setNeighbors_int(self.as_raw_LBPHFaceRecognizer(), val) }.into_result()
}
fn get_threshold(&self) -> Result<f64> {
unsafe { sys::cv_face_LBPHFaceRecognizer_getThreshold_const(self.as_raw_LBPHFaceRecognizer()) }.into_result()
}
fn set_threshold(&mut self, val: f64) -> Result<()> {
unsafe { sys::cv_face_LBPHFaceRecognizer_setThreshold_double(self.as_raw_LBPHFaceRecognizer(), val) }.into_result()
}
fn get_histograms(&self) -> Result<types::VectorOfMat> {
unsafe { sys::cv_face_LBPHFaceRecognizer_getHistograms_const(self.as_raw_LBPHFaceRecognizer()) }.into_result().map(|ptr| types::VectorOfMat { ptr })
}
fn get_labels(&self) -> Result<core::Mat> {
unsafe { sys::cv_face_LBPHFaceRecognizer_getLabels_const(self.as_raw_LBPHFaceRecognizer()) }.into_result().map(|ptr| core::Mat { ptr })
}
}
impl dyn LBPHFaceRecognizer + '_ {
pub fn create(radius: i32, neighbors: i32, grid_x: i32, grid_y: i32, threshold: f64) -> Result<types::PtrOfLBPHFaceRecognizer> {
unsafe { sys::cv_face_LBPHFaceRecognizer_create_int_int_int_int_double(radius, neighbors, grid_x, grid_y, threshold) }.into_result().map(|ptr| types::PtrOfLBPHFaceRecognizer { ptr })
}
}
pub trait MACE: core::AlgorithmTrait {
fn as_raw_MACE(&self) -> *mut c_void;
fn salt(&mut self, passphrase: &str) -> Result<()> {
string_arg!(passphrase);
unsafe { sys::cv_face_MACE_salt_const_StringX(self.as_raw_MACE(), passphrase.as_ptr()) }.into_result()
}
fn train(&mut self, images: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(images);
unsafe { sys::cv_face_MACE_train_const__InputArrayX(self.as_raw_MACE(), images.as_raw__InputArray()) }.into_result()
}
fn same(&self, query: &dyn core::ToInputArray) -> Result<bool> {
input_array_arg!(query);
unsafe { sys::cv_face_MACE_same_const_const__InputArrayX(self.as_raw_MACE(), query.as_raw__InputArray()) }.into_result()
}
}
impl dyn MACE + '_ {
pub fn load(filename: &str, objname: &str) -> Result<types::PtrOfMACE> {
string_arg!(filename);
string_arg!(objname);
unsafe { sys::cv_face_MACE_load_const_StringX_const_StringX(filename.as_ptr(), objname.as_ptr()) }.into_result().map(|ptr| types::PtrOfMACE { ptr })
}
pub fn create(imgsize: i32) -> Result<types::PtrOfMACE> {
unsafe { sys::cv_face_MACE_create_int(imgsize) }.into_result().map(|ptr| types::PtrOfMACE { ptr })
}
}
pub trait PredictCollector {
fn as_raw_PredictCollector(&self) -> *mut c_void;
fn init(&mut self, size: size_t) -> Result<()> {
unsafe { sys::cv_face_PredictCollector_init_size_t(self.as_raw_PredictCollector(), size) }.into_result()
}
fn collect(&mut self, label: i32, dist: f64) -> Result<bool> {
unsafe { sys::cv_face_PredictCollector_collect_int_double(self.as_raw_PredictCollector(), label, dist) }.into_result()
}
}
pub trait StandardCollectorTrait: crate::face::PredictCollector {
fn as_raw_StandardCollector(&self) -> *mut c_void;
fn init(&mut self, size: size_t) -> Result<()> {
unsafe { sys::cv_face_StandardCollector_init_size_t(self.as_raw_StandardCollector(), size) }.into_result()
}
fn collect(&mut self, label: i32, dist: f64) -> Result<bool> {
unsafe { sys::cv_face_StandardCollector_collect_int_double(self.as_raw_StandardCollector(), label, dist) }.into_result()
}
fn get_min_label(&self) -> Result<i32> {
unsafe { sys::cv_face_StandardCollector_getMinLabel_const(self.as_raw_StandardCollector()) }.into_result()
}
fn get_min_dist(&self) -> Result<f64> {
unsafe { sys::cv_face_StandardCollector_getMinDist_const(self.as_raw_StandardCollector()) }.into_result()
}
}
pub struct StandardCollector {
pub(crate) ptr: *mut c_void
}
impl Drop for StandardCollector {
fn drop(&mut self) {
extern "C" { fn cv_StandardCollector_delete(instance: *mut c_void); }
unsafe { cv_StandardCollector_delete(self.as_raw_StandardCollector()) };
}
}
impl StandardCollector {
pub fn as_raw_StandardCollector(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Self { ptr }
}
}
unsafe impl Send for StandardCollector {}
impl crate::face::PredictCollector for StandardCollector {
fn as_raw_PredictCollector(&self) -> *mut c_void { self.ptr }
}
impl crate::face::StandardCollectorTrait for StandardCollector {
fn as_raw_StandardCollector(&self) -> *mut c_void { self.ptr }
}
impl StandardCollector {
pub fn new(threshold_: f64) -> Result<crate::face::StandardCollector> {
unsafe { sys::cv_face_StandardCollector_StandardCollector_double(threshold_) }.into_result().map(|ptr| crate::face::StandardCollector { ptr })
}
pub fn create(threshold: f64) -> Result<types::PtrOfStandardCollector> {
unsafe { sys::cv_face_StandardCollector_create_double(threshold) }.into_result().map(|ptr| types::PtrOfStandardCollector { ptr })
}
}
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct StandardCollector_PredictResult {
pub label: i32,
pub distance: f64,
}
impl StandardCollector_PredictResult {
pub fn new(label_: i32, distance_: f64) -> Result<crate::face::StandardCollector_PredictResult> {
unsafe { sys::cv_face_StandardCollector_PredictResult_PredictResult_int_double(label_, distance_) }.into_result()
}
}