pub mod wechat_qrcode {
use crate::{mod_prelude::*, core, sys, types};
pub mod prelude {
pub use { super::WeChatQRCodeTraitConst, super::WeChatQRCodeTrait };
}
pub trait WeChatQRCodeTraitConst {
fn as_raw_WeChatQRCode(&self) -> *const c_void;
}
pub trait WeChatQRCodeTrait: crate::wechat_qrcode::WeChatQRCodeTraitConst {
fn as_raw_mut_WeChatQRCode(&mut self) -> *mut c_void;
#[inline]
fn detect_and_decode(&mut self, img: &impl core::ToInputArray, points: &mut impl core::ToOutputArray) -> Result<core::Vector<String>> {
input_array_arg!(img);
output_array_arg!(points);
return_send!(via ocvrs_return);
unsafe { sys::cv_wechat_qrcode_WeChatQRCode_detectAndDecode_const__InputArrayR_const__OutputArrayR(self.as_raw_mut_WeChatQRCode(), img.as_raw__InputArray(), points.as_raw__OutputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Vector::<String>::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
fn set_scale_factor(&mut self, _scaling_factor: f32) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_wechat_qrcode_WeChatQRCode_setScaleFactor_float(self.as_raw_mut_WeChatQRCode(), _scaling_factor, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_scale_factor(&mut self) -> Result<f32> {
return_send!(via ocvrs_return);
unsafe { sys::cv_wechat_qrcode_WeChatQRCode_getScaleFactor(self.as_raw_mut_WeChatQRCode(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct WeChatQRCode {
ptr: *mut c_void
}
opencv_type_boxed! { WeChatQRCode }
impl Drop for WeChatQRCode {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_WeChatQRCode_delete(instance: *mut c_void); }
unsafe { cv_WeChatQRCode_delete(self.as_raw_mut_WeChatQRCode()) };
}
}
unsafe impl Send for WeChatQRCode {}
impl crate::wechat_qrcode::WeChatQRCodeTraitConst for WeChatQRCode {
#[inline] fn as_raw_WeChatQRCode(&self) -> *const c_void { self.as_raw() }
}
impl crate::wechat_qrcode::WeChatQRCodeTrait for WeChatQRCode {
#[inline] fn as_raw_mut_WeChatQRCode(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl WeChatQRCode {
#[inline]
pub fn new(detector_prototxt_path: &str, detector_caffe_model_path: &str, super_resolution_prototxt_path: &str, super_resolution_caffe_model_path: &str) -> Result<crate::wechat_qrcode::WeChatQRCode> {
extern_container_arg!(detector_prototxt_path);
extern_container_arg!(detector_caffe_model_path);
extern_container_arg!(super_resolution_prototxt_path);
extern_container_arg!(super_resolution_caffe_model_path);
return_send!(via ocvrs_return);
unsafe { sys::cv_wechat_qrcode_WeChatQRCode_WeChatQRCode_const_stringR_const_stringR_const_stringR_const_stringR(detector_prototxt_path.opencv_as_extern(), detector_caffe_model_path.opencv_as_extern(), super_resolution_prototxt_path.opencv_as_extern(), super_resolution_caffe_model_path.opencv_as_extern(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { crate::wechat_qrcode::WeChatQRCode::opencv_from_extern(ret) };
Ok(ret)
}
}
}