pub mod quality {
use crate::{mod_prelude::*, core, sys, types};
pub mod prelude {
pub use { super::QualityBaseTraitConst, super::QualityBaseTrait, super::QualityMSETraitConst, super::QualityMSETrait, super::QualityPSNRTraitConst, super::QualityPSNRTrait, super::QualitySSIMTraitConst, super::QualitySSIMTrait, super::QualityGMSDTraitConst, super::QualityGMSDTrait, super::QualityBRISQUETraitConst, super::QualityBRISQUETrait };
}
pub trait QualityBRISQUETraitConst: crate::quality::QualityBaseTraitConst {
fn as_raw_QualityBRISQUE(&self) -> *const c_void;
}
pub trait QualityBRISQUETrait: crate::quality::QualityBRISQUETraitConst + crate::quality::QualityBaseTrait {
fn as_raw_mut_QualityBRISQUE(&mut self) -> *mut c_void;
#[inline]
fn compute(&mut self, img: &impl core::ToInputArray) -> Result<core::Scalar> {
input_array_arg!(img);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityBRISQUE_compute_const__InputArrayR(self.as_raw_mut_QualityBRISQUE(), img.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct QualityBRISQUE {
ptr: *mut c_void
}
opencv_type_boxed! { QualityBRISQUE }
impl Drop for QualityBRISQUE {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_QualityBRISQUE_delete(instance: *mut c_void); }
unsafe { cv_QualityBRISQUE_delete(self.as_raw_mut_QualityBRISQUE()) };
}
}
unsafe impl Send for QualityBRISQUE {}
impl core::AlgorithmTraitConst for QualityBRISQUE {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for QualityBRISQUE {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualityBaseTraitConst for QualityBRISQUE {
#[inline] fn as_raw_QualityBase(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualityBaseTrait for QualityBRISQUE {
#[inline] fn as_raw_mut_QualityBase(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualityBRISQUETraitConst for QualityBRISQUE {
#[inline] fn as_raw_QualityBRISQUE(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualityBRISQUETrait for QualityBRISQUE {
#[inline] fn as_raw_mut_QualityBRISQUE(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl QualityBRISQUE {
#[inline]
pub fn create(model_file_path: &str, range_file_path: &str) -> Result<core::Ptr<crate::quality::QualityBRISQUE>> {
extern_container_arg!(model_file_path);
extern_container_arg!(range_file_path);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityBRISQUE_create_const_StringR_const_StringR(model_file_path.opencv_as_extern(), range_file_path.opencv_as_extern(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::quality::QualityBRISQUE>::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
pub fn create_1(model: &core::Ptr<crate::ml::SVM>, range: &core::Mat) -> Result<core::Ptr<crate::quality::QualityBRISQUE>> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityBRISQUE_create_const_PtrLSVMGR_const_MatR(model.as_raw_PtrOfSVM(), range.as_raw_Mat(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::quality::QualityBRISQUE>::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
pub fn compute(img: &impl core::ToInputArray, model_file_path: &str, range_file_path: &str) -> Result<core::Scalar> {
input_array_arg!(img);
extern_container_arg!(model_file_path);
extern_container_arg!(range_file_path);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityBRISQUE_compute_const__InputArrayR_const_StringR_const_StringR(img.as_raw__InputArray(), model_file_path.opencv_as_extern(), range_file_path.opencv_as_extern(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
pub fn compute_features(img: &impl core::ToInputArray, features: &mut impl core::ToOutputArray) -> Result<()> {
input_array_arg!(img);
output_array_arg!(features);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityBRISQUE_computeFeatures_const__InputArrayR_const__OutputArrayR(img.as_raw__InputArray(), features.as_raw__OutputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
boxed_cast_base! { QualityBRISQUE, core::Algorithm, cv_QualityBRISQUE_to_Algorithm }
pub trait QualityBaseTraitConst: core::AlgorithmTraitConst {
fn as_raw_QualityBase(&self) -> *const c_void;
#[inline]
fn get_quality_map(&self, dst: &mut impl core::ToOutputArray) -> Result<()> {
output_array_arg!(dst);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityBase_getQualityMap_const_const__OutputArrayR(self.as_raw_QualityBase(), dst.as_raw__OutputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn empty(&self) -> Result<bool> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityBase_empty_const(self.as_raw_QualityBase(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait QualityBaseTrait: core::AlgorithmTrait + crate::quality::QualityBaseTraitConst {
fn as_raw_mut_QualityBase(&mut self) -> *mut c_void;
#[inline]
fn compute(&mut self, img: &impl core::ToInputArray) -> Result<core::Scalar> {
input_array_arg!(img);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityBase_compute_const__InputArrayR(self.as_raw_mut_QualityBase(), img.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn clear(&mut self) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityBase_clear(self.as_raw_mut_QualityBase(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct QualityBase {
ptr: *mut c_void
}
opencv_type_boxed! { QualityBase }
impl Drop for QualityBase {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_QualityBase_delete(instance: *mut c_void); }
unsafe { cv_QualityBase_delete(self.as_raw_mut_QualityBase()) };
}
}
unsafe impl Send for QualityBase {}
impl core::AlgorithmTraitConst for QualityBase {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for QualityBase {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualityBaseTraitConst for QualityBase {
#[inline] fn as_raw_QualityBase(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualityBaseTrait for QualityBase {
#[inline] fn as_raw_mut_QualityBase(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl QualityBase {
}
boxed_cast_descendant! { QualityBase, crate::quality::QualityBRISQUE, cv_QualityBase_to_QualityBRISQUE }
boxed_cast_descendant! { QualityBase, crate::quality::QualityGMSD, cv_QualityBase_to_QualityGMSD }
boxed_cast_descendant! { QualityBase, crate::quality::QualityMSE, cv_QualityBase_to_QualityMSE }
boxed_cast_descendant! { QualityBase, crate::quality::QualityPSNR, cv_QualityBase_to_QualityPSNR }
boxed_cast_descendant! { QualityBase, crate::quality::QualitySSIM, cv_QualityBase_to_QualitySSIM }
boxed_cast_base! { QualityBase, core::Algorithm, cv_QualityBase_to_Algorithm }
pub trait QualityGMSDTraitConst: crate::quality::QualityBaseTraitConst {
fn as_raw_QualityGMSD(&self) -> *const c_void;
#[inline]
fn empty(&self) -> Result<bool> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityGMSD_empty_const(self.as_raw_QualityGMSD(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait QualityGMSDTrait: crate::quality::QualityBaseTrait + crate::quality::QualityGMSDTraitConst {
fn as_raw_mut_QualityGMSD(&mut self) -> *mut c_void;
#[inline]
fn compute(&mut self, cmp: &impl core::ToInputArray) -> Result<core::Scalar> {
input_array_arg!(cmp);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityGMSD_compute_const__InputArrayR(self.as_raw_mut_QualityGMSD(), cmp.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn clear(&mut self) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityGMSD_clear(self.as_raw_mut_QualityGMSD(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct QualityGMSD {
ptr: *mut c_void
}
opencv_type_boxed! { QualityGMSD }
impl Drop for QualityGMSD {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_QualityGMSD_delete(instance: *mut c_void); }
unsafe { cv_QualityGMSD_delete(self.as_raw_mut_QualityGMSD()) };
}
}
unsafe impl Send for QualityGMSD {}
impl core::AlgorithmTraitConst for QualityGMSD {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for QualityGMSD {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualityBaseTraitConst for QualityGMSD {
#[inline] fn as_raw_QualityBase(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualityBaseTrait for QualityGMSD {
#[inline] fn as_raw_mut_QualityBase(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualityGMSDTraitConst for QualityGMSD {
#[inline] fn as_raw_QualityGMSD(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualityGMSDTrait for QualityGMSD {
#[inline] fn as_raw_mut_QualityGMSD(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl QualityGMSD {
#[inline]
pub fn create(ref_: &impl core::ToInputArray) -> Result<core::Ptr<crate::quality::QualityGMSD>> {
input_array_arg!(ref_);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityGMSD_create_const__InputArrayR(ref_.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::quality::QualityGMSD>::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
pub fn compute(ref_: &impl core::ToInputArray, cmp: &impl core::ToInputArray, quality_map: &mut impl core::ToOutputArray) -> Result<core::Scalar> {
input_array_arg!(ref_);
input_array_arg!(cmp);
output_array_arg!(quality_map);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityGMSD_compute_const__InputArrayR_const__InputArrayR_const__OutputArrayR(ref_.as_raw__InputArray(), cmp.as_raw__InputArray(), quality_map.as_raw__OutputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
boxed_cast_base! { QualityGMSD, core::Algorithm, cv_QualityGMSD_to_Algorithm }
pub trait QualityMSETraitConst: crate::quality::QualityBaseTraitConst {
fn as_raw_QualityMSE(&self) -> *const c_void;
#[inline]
fn empty(&self) -> Result<bool> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityMSE_empty_const(self.as_raw_QualityMSE(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait QualityMSETrait: crate::quality::QualityBaseTrait + crate::quality::QualityMSETraitConst {
fn as_raw_mut_QualityMSE(&mut self) -> *mut c_void;
#[inline]
fn compute(&mut self, cmp_imgs: &impl core::ToInputArray) -> Result<core::Scalar> {
input_array_arg!(cmp_imgs);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityMSE_compute_const__InputArrayR(self.as_raw_mut_QualityMSE(), cmp_imgs.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn clear(&mut self) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityMSE_clear(self.as_raw_mut_QualityMSE(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct QualityMSE {
ptr: *mut c_void
}
opencv_type_boxed! { QualityMSE }
impl Drop for QualityMSE {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_QualityMSE_delete(instance: *mut c_void); }
unsafe { cv_QualityMSE_delete(self.as_raw_mut_QualityMSE()) };
}
}
unsafe impl Send for QualityMSE {}
impl core::AlgorithmTraitConst for QualityMSE {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for QualityMSE {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualityBaseTraitConst for QualityMSE {
#[inline] fn as_raw_QualityBase(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualityBaseTrait for QualityMSE {
#[inline] fn as_raw_mut_QualityBase(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualityMSETraitConst for QualityMSE {
#[inline] fn as_raw_QualityMSE(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualityMSETrait for QualityMSE {
#[inline] fn as_raw_mut_QualityMSE(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl QualityMSE {
#[inline]
pub fn create(ref_: &impl core::ToInputArray) -> Result<core::Ptr<crate::quality::QualityMSE>> {
input_array_arg!(ref_);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityMSE_create_const__InputArrayR(ref_.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::quality::QualityMSE>::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
pub fn compute(ref_: &impl core::ToInputArray, cmp: &impl core::ToInputArray, quality_map: &mut impl core::ToOutputArray) -> Result<core::Scalar> {
input_array_arg!(ref_);
input_array_arg!(cmp);
output_array_arg!(quality_map);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityMSE_compute_const__InputArrayR_const__InputArrayR_const__OutputArrayR(ref_.as_raw__InputArray(), cmp.as_raw__InputArray(), quality_map.as_raw__OutputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
boxed_cast_base! { QualityMSE, core::Algorithm, cv_QualityMSE_to_Algorithm }
pub trait QualityPSNRTraitConst: crate::quality::QualityBaseTraitConst {
fn as_raw_QualityPSNR(&self) -> *const c_void;
#[inline]
fn empty(&self) -> Result<bool> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityPSNR_empty_const(self.as_raw_QualityPSNR(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn get_max_pixel_value(&self) -> Result<f64> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityPSNR_getMaxPixelValue_const(self.as_raw_QualityPSNR(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait QualityPSNRTrait: crate::quality::QualityBaseTrait + crate::quality::QualityPSNRTraitConst {
fn as_raw_mut_QualityPSNR(&mut self) -> *mut c_void;
#[inline]
fn compute(&mut self, cmp: &impl core::ToInputArray) -> Result<core::Scalar> {
input_array_arg!(cmp);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityPSNR_compute_const__InputArrayR(self.as_raw_mut_QualityPSNR(), cmp.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn clear(&mut self) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityPSNR_clear(self.as_raw_mut_QualityPSNR(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn set_max_pixel_value(&mut self, val: f64) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityPSNR_setMaxPixelValue_double(self.as_raw_mut_QualityPSNR(), val, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct QualityPSNR {
ptr: *mut c_void
}
opencv_type_boxed! { QualityPSNR }
impl Drop for QualityPSNR {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_QualityPSNR_delete(instance: *mut c_void); }
unsafe { cv_QualityPSNR_delete(self.as_raw_mut_QualityPSNR()) };
}
}
unsafe impl Send for QualityPSNR {}
impl core::AlgorithmTraitConst for QualityPSNR {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for QualityPSNR {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualityBaseTraitConst for QualityPSNR {
#[inline] fn as_raw_QualityBase(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualityBaseTrait for QualityPSNR {
#[inline] fn as_raw_mut_QualityBase(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualityPSNRTraitConst for QualityPSNR {
#[inline] fn as_raw_QualityPSNR(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualityPSNRTrait for QualityPSNR {
#[inline] fn as_raw_mut_QualityPSNR(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl QualityPSNR {
pub const MAX_PIXEL_VALUE_DEFAULT: f64 = 255.;
#[inline]
pub fn create(ref_: &impl core::ToInputArray, max_pixel_value: f64) -> Result<core::Ptr<crate::quality::QualityPSNR>> {
input_array_arg!(ref_);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityPSNR_create_const__InputArrayR_double(ref_.as_raw__InputArray(), max_pixel_value, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::quality::QualityPSNR>::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
pub fn compute(ref_: &impl core::ToInputArray, cmp: &impl core::ToInputArray, quality_map: &mut impl core::ToOutputArray, max_pixel_value: f64) -> Result<core::Scalar> {
input_array_arg!(ref_);
input_array_arg!(cmp);
output_array_arg!(quality_map);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualityPSNR_compute_const__InputArrayR_const__InputArrayR_const__OutputArrayR_double(ref_.as_raw__InputArray(), cmp.as_raw__InputArray(), quality_map.as_raw__OutputArray(), max_pixel_value, ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
boxed_cast_base! { QualityPSNR, core::Algorithm, cv_QualityPSNR_to_Algorithm }
pub trait QualitySSIMTraitConst: crate::quality::QualityBaseTraitConst {
fn as_raw_QualitySSIM(&self) -> *const c_void;
#[inline]
fn empty(&self) -> Result<bool> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualitySSIM_empty_const(self.as_raw_QualitySSIM(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub trait QualitySSIMTrait: crate::quality::QualityBaseTrait + crate::quality::QualitySSIMTraitConst {
fn as_raw_mut_QualitySSIM(&mut self) -> *mut c_void;
#[inline]
fn compute(&mut self, cmp: &impl core::ToInputArray) -> Result<core::Scalar> {
input_array_arg!(cmp);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualitySSIM_compute_const__InputArrayR(self.as_raw_mut_QualitySSIM(), cmp.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
#[inline]
fn clear(&mut self) -> Result<()> {
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualitySSIM_clear(self.as_raw_mut_QualitySSIM(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
pub struct QualitySSIM {
ptr: *mut c_void
}
opencv_type_boxed! { QualitySSIM }
impl Drop for QualitySSIM {
#[inline]
fn drop(&mut self) {
extern "C" { fn cv_QualitySSIM_delete(instance: *mut c_void); }
unsafe { cv_QualitySSIM_delete(self.as_raw_mut_QualitySSIM()) };
}
}
unsafe impl Send for QualitySSIM {}
impl core::AlgorithmTraitConst for QualitySSIM {
#[inline] fn as_raw_Algorithm(&self) -> *const c_void { self.as_raw() }
}
impl core::AlgorithmTrait for QualitySSIM {
#[inline] fn as_raw_mut_Algorithm(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualityBaseTraitConst for QualitySSIM {
#[inline] fn as_raw_QualityBase(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualityBaseTrait for QualitySSIM {
#[inline] fn as_raw_mut_QualityBase(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl crate::quality::QualitySSIMTraitConst for QualitySSIM {
#[inline] fn as_raw_QualitySSIM(&self) -> *const c_void { self.as_raw() }
}
impl crate::quality::QualitySSIMTrait for QualitySSIM {
#[inline] fn as_raw_mut_QualitySSIM(&mut self) -> *mut c_void { self.as_raw_mut() }
}
impl QualitySSIM {
#[inline]
pub fn create(ref_: &impl core::ToInputArray) -> Result<core::Ptr<crate::quality::QualitySSIM>> {
input_array_arg!(ref_);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualitySSIM_create_const__InputArrayR(ref_.as_raw__InputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
let ret = unsafe { core::Ptr::<crate::quality::QualitySSIM>::opencv_from_extern(ret) };
Ok(ret)
}
#[inline]
pub fn compute(ref_: &impl core::ToInputArray, cmp: &impl core::ToInputArray, quality_map: &mut impl core::ToOutputArray) -> Result<core::Scalar> {
input_array_arg!(ref_);
input_array_arg!(cmp);
output_array_arg!(quality_map);
return_send!(via ocvrs_return);
unsafe { sys::cv_quality_QualitySSIM_compute_const__InputArrayR_const__InputArrayR_const__OutputArrayR(ref_.as_raw__InputArray(), cmp.as_raw__InputArray(), quality_map.as_raw__OutputArray(), ocvrs_return.as_mut_ptr()) };
return_receive!(unsafe ocvrs_return => ret);
let ret = ret.into_result()?;
Ok(ret)
}
}
boxed_cast_base! { QualitySSIM, core::Algorithm, cv_QualitySSIM_to_Algorithm }
}