use std::os::raw::{c_char, c_void};
use libc::{ptrdiff_t, size_t};
use crate::{Error, Result, core, sys, types};
use crate::core::{_InputArray, _OutputArray};
pub trait HistogramPhaseUnwrapping: crate::phase_unwrapping::PhaseUnwrapping {
#[inline(always)] fn as_raw_HistogramPhaseUnwrapping(&self) -> *mut c_void;
fn get_inverse_reliability_map(&mut self, reliability_map: &mut dyn core::ToOutputArray) -> Result<()> {
output_array_arg!(reliability_map);
unsafe { sys::cv_phase_unwrapping_HistogramPhaseUnwrapping_getInverseReliabilityMap__OutputArray(self.as_raw_HistogramPhaseUnwrapping(), reliability_map.as_raw__OutputArray()) }.into_result()
}
}
impl dyn HistogramPhaseUnwrapping + '_ {
pub fn create(parameters: &crate::phase_unwrapping::HistogramPhaseUnwrapping_Params) -> Result<types::PtrOfHistogramPhaseUnwrapping> {
unsafe { sys::cv_phase_unwrapping_HistogramPhaseUnwrapping_create_Params(parameters.as_raw_HistogramPhaseUnwrapping_Params()) }.into_result().map(|ptr| types::PtrOfHistogramPhaseUnwrapping { ptr })
}
}
pub struct HistogramPhaseUnwrapping_Params {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::phase_unwrapping::HistogramPhaseUnwrapping_Params {
fn drop(&mut self) {
unsafe { sys::cv_HistogramPhaseUnwrapping_Params_delete(self.ptr) };
}
}
impl crate::phase_unwrapping::HistogramPhaseUnwrapping_Params {
#[inline(always)] pub fn as_raw_HistogramPhaseUnwrapping_Params(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Self { ptr }
}
}
unsafe impl Send for HistogramPhaseUnwrapping_Params {}
impl HistogramPhaseUnwrapping_Params {
pub fn default() -> Result<crate::phase_unwrapping::HistogramPhaseUnwrapping_Params> {
unsafe { sys::cv_phase_unwrapping_HistogramPhaseUnwrapping_Params_Params() }.into_result().map(|ptr| crate::phase_unwrapping::HistogramPhaseUnwrapping_Params { ptr })
}
}
pub trait PhaseUnwrapping: core::Algorithm {
#[inline(always)] fn as_raw_PhaseUnwrapping(&self) -> *mut c_void;
fn unwrap_phase_map(&mut self, wrapped_phase_map: &dyn core::ToInputArray, unwrapped_phase_map: &mut dyn core::ToOutputArray, shadow_mask: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(wrapped_phase_map);
output_array_arg!(unwrapped_phase_map);
input_array_arg!(shadow_mask);
unsafe { sys::cv_phase_unwrapping_PhaseUnwrapping_unwrapPhaseMap__InputArray__OutputArray__InputArray(self.as_raw_PhaseUnwrapping(), wrapped_phase_map.as_raw__InputArray(), unwrapped_phase_map.as_raw__OutputArray(), shadow_mask.as_raw__InputArray()) }.into_result()
}
}