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 const INPAINT_NS: i32 = 0;
pub const INPAINT_TELEA: i32 = 1;
pub const LDR_SIZE: i32 = 256;
pub const MIXED_CLONE: i32 = 2;
pub const MONOCHROME_TRANSFER: i32 = 3;
pub const NORMAL_CLONE: i32 = 1;
pub const NORMCONV_FILTER: i32 = 2;
pub const RECURS_FILTER: i32 = 1;
pub fn color_change(src: &dyn core::ToInputArray, mask: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, red_mul: f32, green_mul: f32, blue_mul: f32) -> Result<()> {
input_array_arg!(src);
input_array_arg!(mask);
output_array_arg!(dst);
unsafe { sys::cv_colorChange__InputArray__InputArray__OutputArray_float_float_float(src.as_raw__InputArray(), mask.as_raw__InputArray(), dst.as_raw__OutputArray(), red_mul, green_mul, blue_mul) }.into_result()
}
pub fn create_align_mtb(max_bits: i32, exclude_range: i32, cut: bool) -> Result<types::PtrOfAlignMTB> {
unsafe { sys::cv_createAlignMTB_int_int_bool(max_bits, exclude_range, cut) }.into_result().map(|ptr| types::PtrOfAlignMTB { ptr })
}
pub fn create_calibrate_debevec(samples: i32, lambda: f32, random: bool) -> Result<types::PtrOfCalibrateDebevec> {
unsafe { sys::cv_createCalibrateDebevec_int_float_bool(samples, lambda, random) }.into_result().map(|ptr| types::PtrOfCalibrateDebevec { ptr })
}
pub fn create_calibrate_robertson(max_iter: i32, threshold: f32) -> Result<types::PtrOfCalibrateRobertson> {
unsafe { sys::cv_createCalibrateRobertson_int_float(max_iter, threshold) }.into_result().map(|ptr| types::PtrOfCalibrateRobertson { ptr })
}
pub fn create_merge_debevec() -> Result<types::PtrOfMergeDebevec> {
unsafe { sys::cv_createMergeDebevec() }.into_result().map(|ptr| types::PtrOfMergeDebevec { ptr })
}
pub fn create_merge_mertens(contrast_weight: f32, saturation_weight: f32, exposure_weight: f32) -> Result<types::PtrOfMergeMertens> {
unsafe { sys::cv_createMergeMertens_float_float_float(contrast_weight, saturation_weight, exposure_weight) }.into_result().map(|ptr| types::PtrOfMergeMertens { ptr })
}
pub fn create_merge_robertson() -> Result<types::PtrOfMergeRobertson> {
unsafe { sys::cv_createMergeRobertson() }.into_result().map(|ptr| types::PtrOfMergeRobertson { ptr })
}
pub fn create_tonemap_drago(gamma: f32, saturation: f32, bias: f32) -> Result<types::PtrOfTonemapDrago> {
unsafe { sys::cv_createTonemapDrago_float_float_float(gamma, saturation, bias) }.into_result().map(|ptr| types::PtrOfTonemapDrago { ptr })
}
pub fn create_tonemap_mantiuk(gamma: f32, scale: f32, saturation: f32) -> Result<types::PtrOfTonemapMantiuk> {
unsafe { sys::cv_createTonemapMantiuk_float_float_float(gamma, scale, saturation) }.into_result().map(|ptr| types::PtrOfTonemapMantiuk { ptr })
}
pub fn create_tonemap_reinhard(gamma: f32, intensity: f32, light_adapt: f32, color_adapt: f32) -> Result<types::PtrOfTonemapReinhard> {
unsafe { sys::cv_createTonemapReinhard_float_float_float_float(gamma, intensity, light_adapt, color_adapt) }.into_result().map(|ptr| types::PtrOfTonemapReinhard { ptr })
}
pub fn create_tonemap(gamma: f32) -> Result<types::PtrOfTonemap> {
unsafe { sys::cv_createTonemap_float(gamma) }.into_result().map(|ptr| types::PtrOfTonemap { ptr })
}
pub fn decolor(src: &dyn core::ToInputArray, grayscale: &mut dyn core::ToOutputArray, color_boost: &mut dyn core::ToOutputArray) -> Result<()> {
input_array_arg!(src);
output_array_arg!(grayscale);
output_array_arg!(color_boost);
unsafe { sys::cv_decolor__InputArray__OutputArray__OutputArray(src.as_raw__InputArray(), grayscale.as_raw__OutputArray(), color_boost.as_raw__OutputArray()) }.into_result()
}
pub fn denoise_tvl1(observations: &types::VectorOfMat, result: &mut core::Mat, lambda: f64, niters: i32) -> Result<()> {
unsafe { sys::cv_denoise_TVL1_VectorOfMat_Mat_double_int(observations.as_raw_VectorOfMat(), result.as_raw_Mat(), lambda, niters) }.into_result()
}
pub fn detail_enhance(src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, sigma_s: f32, sigma_r: f32) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
unsafe { sys::cv_detailEnhance__InputArray__OutputArray_float_float(src.as_raw__InputArray(), dst.as_raw__OutputArray(), sigma_s, sigma_r) }.into_result()
}
pub fn edge_preserving_filter(src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, flags: i32, sigma_s: f32, sigma_r: f32) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
unsafe { sys::cv_edgePreservingFilter__InputArray__OutputArray_int_float_float(src.as_raw__InputArray(), dst.as_raw__OutputArray(), flags, sigma_s, sigma_r) }.into_result()
}
pub fn fast_nl_means_denoising_colored_multi(src_imgs: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, img_to_denoise_index: i32, temporal_window_size: i32, h: f32, h_color: f32, template_window_size: i32, search_window_size: i32) -> Result<()> {
input_array_arg!(src_imgs);
output_array_arg!(dst);
unsafe { sys::cv_fastNlMeansDenoisingColoredMulti__InputArray__OutputArray_int_int_float_float_int_int(src_imgs.as_raw__InputArray(), dst.as_raw__OutputArray(), img_to_denoise_index, temporal_window_size, h, h_color, template_window_size, search_window_size) }.into_result()
}
pub fn fast_nl_means_denoising_colored(src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, h: f32, h_color: f32, template_window_size: i32, search_window_size: i32) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
unsafe { sys::cv_fastNlMeansDenoisingColored__InputArray__OutputArray_float_float_int_int(src.as_raw__InputArray(), dst.as_raw__OutputArray(), h, h_color, template_window_size, search_window_size) }.into_result()
}
pub fn fast_nl_means_denoising_multi(src_imgs: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, img_to_denoise_index: i32, temporal_window_size: i32, h: &types::VectorOffloat, template_window_size: i32, search_window_size: i32, norm_type: i32) -> Result<()> {
input_array_arg!(src_imgs);
output_array_arg!(dst);
unsafe { sys::cv_fastNlMeansDenoisingMulti__InputArray__OutputArray_int_int_VectorOffloat_int_int_int(src_imgs.as_raw__InputArray(), dst.as_raw__OutputArray(), img_to_denoise_index, temporal_window_size, h.as_raw_VectorOffloat(), template_window_size, search_window_size, norm_type) }.into_result()
}
pub fn fast_nl_means_denoising_multi_vec(src_imgs: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, img_to_denoise_index: i32, temporal_window_size: i32, h: f32, template_window_size: i32, search_window_size: i32) -> Result<()> {
input_array_arg!(src_imgs);
output_array_arg!(dst);
unsafe { sys::cv_fastNlMeansDenoisingMulti__InputArray__OutputArray_int_int_float_int_int(src_imgs.as_raw__InputArray(), dst.as_raw__OutputArray(), img_to_denoise_index, temporal_window_size, h, template_window_size, search_window_size) }.into_result()
}
pub fn fast_nl_means_denoising_vec(src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, h: &types::VectorOffloat, template_window_size: i32, search_window_size: i32, norm_type: i32) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
unsafe { sys::cv_fastNlMeansDenoising__InputArray__OutputArray_VectorOffloat_int_int_int(src.as_raw__InputArray(), dst.as_raw__OutputArray(), h.as_raw_VectorOffloat(), template_window_size, search_window_size, norm_type) }.into_result()
}
pub fn fast_nl_means_denoising(src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, h: f32, template_window_size: i32, search_window_size: i32) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
unsafe { sys::cv_fastNlMeansDenoising__InputArray__OutputArray_float_int_int(src.as_raw__InputArray(), dst.as_raw__OutputArray(), h, template_window_size, search_window_size) }.into_result()
}
pub fn illumination_change(src: &dyn core::ToInputArray, mask: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, alpha: f32, beta: f32) -> Result<()> {
input_array_arg!(src);
input_array_arg!(mask);
output_array_arg!(dst);
unsafe { sys::cv_illuminationChange__InputArray__InputArray__OutputArray_float_float(src.as_raw__InputArray(), mask.as_raw__InputArray(), dst.as_raw__OutputArray(), alpha, beta) }.into_result()
}
pub fn inpaint(src: &dyn core::ToInputArray, inpaint_mask: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, inpaint_radius: f64, flags: i32) -> Result<()> {
input_array_arg!(src);
input_array_arg!(inpaint_mask);
output_array_arg!(dst);
unsafe { sys::cv_inpaint__InputArray__InputArray__OutputArray_double_int(src.as_raw__InputArray(), inpaint_mask.as_raw__InputArray(), dst.as_raw__OutputArray(), inpaint_radius, flags) }.into_result()
}
pub fn pencil_sketch(src: &dyn core::ToInputArray, dst1: &mut dyn core::ToOutputArray, dst2: &mut dyn core::ToOutputArray, sigma_s: f32, sigma_r: f32, shade_factor: f32) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst1);
output_array_arg!(dst2);
unsafe { sys::cv_pencilSketch__InputArray__OutputArray__OutputArray_float_float_float(src.as_raw__InputArray(), dst1.as_raw__OutputArray(), dst2.as_raw__OutputArray(), sigma_s, sigma_r, shade_factor) }.into_result()
}
pub fn seamless_clone(src: &dyn core::ToInputArray, dst: &dyn core::ToInputArray, mask: &dyn core::ToInputArray, p: core::Point, blend: &mut dyn core::ToOutputArray, flags: i32) -> Result<()> {
input_array_arg!(src);
input_array_arg!(dst);
input_array_arg!(mask);
output_array_arg!(blend);
unsafe { sys::cv_seamlessClone__InputArray__InputArray__InputArray_Point__OutputArray_int(src.as_raw__InputArray(), dst.as_raw__InputArray(), mask.as_raw__InputArray(), p, blend.as_raw__OutputArray(), flags) }.into_result()
}
pub fn stylization(src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, sigma_s: f32, sigma_r: f32) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
unsafe { sys::cv_stylization__InputArray__OutputArray_float_float(src.as_raw__InputArray(), dst.as_raw__OutputArray(), sigma_s, sigma_r) }.into_result()
}
pub fn texture_flattening(src: &dyn core::ToInputArray, mask: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, low_threshold: f32, high_threshold: f32, kernel_size: i32) -> Result<()> {
input_array_arg!(src);
input_array_arg!(mask);
output_array_arg!(dst);
unsafe { sys::cv_textureFlattening__InputArray__InputArray__OutputArray_float_float_int(src.as_raw__InputArray(), mask.as_raw__InputArray(), dst.as_raw__OutputArray(), low_threshold, high_threshold, kernel_size) }.into_result()
}
pub trait AlignExposures: core::Algorithm {
#[inline(always)] fn as_raw_AlignExposures(&self) -> *mut c_void;
fn process(&mut self, src: &dyn core::ToInputArray, dst: &mut types::VectorOfMat, times: &dyn core::ToInputArray, response: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
input_array_arg!(times);
input_array_arg!(response);
unsafe { sys::cv_AlignExposures_process__InputArray_VectorOfMat__InputArray__InputArray(self.as_raw_AlignExposures(), src.as_raw__InputArray(), dst.as_raw_VectorOfMat(), times.as_raw__InputArray(), response.as_raw__InputArray()) }.into_result()
}
}
pub trait AlignMTB: crate::photo::AlignExposures {
#[inline(always)] fn as_raw_AlignMTB(&self) -> *mut c_void;
fn process_with_response(&mut self, src: &dyn core::ToInputArray, dst: &mut types::VectorOfMat, times: &dyn core::ToInputArray, response: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
input_array_arg!(times);
input_array_arg!(response);
unsafe { sys::cv_AlignMTB_process__InputArray_VectorOfMat__InputArray__InputArray(self.as_raw_AlignMTB(), src.as_raw__InputArray(), dst.as_raw_VectorOfMat(), times.as_raw__InputArray(), response.as_raw__InputArray()) }.into_result()
}
fn process(&mut self, src: &dyn core::ToInputArray, dst: &mut types::VectorOfMat) -> Result<()> {
input_array_arg!(src);
unsafe { sys::cv_AlignMTB_process__InputArray_VectorOfMat(self.as_raw_AlignMTB(), src.as_raw__InputArray(), dst.as_raw_VectorOfMat()) }.into_result()
}
fn calculate_shift(&mut self, img0: &dyn core::ToInputArray, img1: &dyn core::ToInputArray) -> Result<core::Point> {
input_array_arg!(img0);
input_array_arg!(img1);
unsafe { sys::cv_AlignMTB_calculateShift__InputArray__InputArray(self.as_raw_AlignMTB(), img0.as_raw__InputArray(), img1.as_raw__InputArray()) }.into_result()
}
fn shift_mat(&mut self, src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, shift: core::Point) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
unsafe { sys::cv_AlignMTB_shiftMat__InputArray__OutputArray_Point(self.as_raw_AlignMTB(), src.as_raw__InputArray(), dst.as_raw__OutputArray(), shift) }.into_result()
}
fn compute_bitmaps(&mut self, img: &dyn core::ToInputArray, tb: &mut dyn core::ToOutputArray, eb: &mut dyn core::ToOutputArray) -> Result<()> {
input_array_arg!(img);
output_array_arg!(tb);
output_array_arg!(eb);
unsafe { sys::cv_AlignMTB_computeBitmaps__InputArray__OutputArray__OutputArray(self.as_raw_AlignMTB(), img.as_raw__InputArray(), tb.as_raw__OutputArray(), eb.as_raw__OutputArray()) }.into_result()
}
fn get_max_bits(&self) -> Result<i32> {
unsafe { sys::cv_AlignMTB_getMaxBits_const(self.as_raw_AlignMTB()) }.into_result()
}
fn set_max_bits(&mut self, max_bits: i32) -> Result<()> {
unsafe { sys::cv_AlignMTB_setMaxBits_int(self.as_raw_AlignMTB(), max_bits) }.into_result()
}
fn get_exclude_range(&self) -> Result<i32> {
unsafe { sys::cv_AlignMTB_getExcludeRange_const(self.as_raw_AlignMTB()) }.into_result()
}
fn set_exclude_range(&mut self, exclude_range: i32) -> Result<()> {
unsafe { sys::cv_AlignMTB_setExcludeRange_int(self.as_raw_AlignMTB(), exclude_range) }.into_result()
}
fn get_cut(&self) -> Result<bool> {
unsafe { sys::cv_AlignMTB_getCut_const(self.as_raw_AlignMTB()) }.into_result()
}
fn set_cut(&mut self, value: bool) -> Result<()> {
unsafe { sys::cv_AlignMTB_setCut_bool(self.as_raw_AlignMTB(), value) }.into_result()
}
}
pub trait CalibrateCRF: core::Algorithm {
#[inline(always)] fn as_raw_CalibrateCRF(&self) -> *mut c_void;
fn process(&mut self, src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, times: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
input_array_arg!(times);
unsafe { sys::cv_CalibrateCRF_process__InputArray__OutputArray__InputArray(self.as_raw_CalibrateCRF(), src.as_raw__InputArray(), dst.as_raw__OutputArray(), times.as_raw__InputArray()) }.into_result()
}
}
pub trait CalibrateDebevec: crate::photo::CalibrateCRF {
#[inline(always)] fn as_raw_CalibrateDebevec(&self) -> *mut c_void;
fn get_lambda(&self) -> Result<f32> {
unsafe { sys::cv_CalibrateDebevec_getLambda_const(self.as_raw_CalibrateDebevec()) }.into_result()
}
fn set_lambda(&mut self, lambda: f32) -> Result<()> {
unsafe { sys::cv_CalibrateDebevec_setLambda_float(self.as_raw_CalibrateDebevec(), lambda) }.into_result()
}
fn get_samples(&self) -> Result<i32> {
unsafe { sys::cv_CalibrateDebevec_getSamples_const(self.as_raw_CalibrateDebevec()) }.into_result()
}
fn set_samples(&mut self, samples: i32) -> Result<()> {
unsafe { sys::cv_CalibrateDebevec_setSamples_int(self.as_raw_CalibrateDebevec(), samples) }.into_result()
}
fn get_random(&self) -> Result<bool> {
unsafe { sys::cv_CalibrateDebevec_getRandom_const(self.as_raw_CalibrateDebevec()) }.into_result()
}
fn set_random(&mut self, random: bool) -> Result<()> {
unsafe { sys::cv_CalibrateDebevec_setRandom_bool(self.as_raw_CalibrateDebevec(), random) }.into_result()
}
}
pub trait CalibrateRobertson: crate::photo::CalibrateCRF {
#[inline(always)] fn as_raw_CalibrateRobertson(&self) -> *mut c_void;
fn get_max_iter(&self) -> Result<i32> {
unsafe { sys::cv_CalibrateRobertson_getMaxIter_const(self.as_raw_CalibrateRobertson()) }.into_result()
}
fn set_max_iter(&mut self, max_iter: i32) -> Result<()> {
unsafe { sys::cv_CalibrateRobertson_setMaxIter_int(self.as_raw_CalibrateRobertson(), max_iter) }.into_result()
}
fn get_threshold(&self) -> Result<f32> {
unsafe { sys::cv_CalibrateRobertson_getThreshold_const(self.as_raw_CalibrateRobertson()) }.into_result()
}
fn set_threshold(&mut self, threshold: f32) -> Result<()> {
unsafe { sys::cv_CalibrateRobertson_setThreshold_float(self.as_raw_CalibrateRobertson(), threshold) }.into_result()
}
fn get_radiance(&self) -> Result<core::Mat> {
unsafe { sys::cv_CalibrateRobertson_getRadiance_const(self.as_raw_CalibrateRobertson()) }.into_result().map(|ptr| core::Mat { ptr })
}
}
pub trait MergeDebevec: crate::photo::MergeExposures {
#[inline(always)] fn as_raw_MergeDebevec(&self) -> *mut c_void;
fn process_with_response(&mut self, src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, times: &dyn core::ToInputArray, response: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
input_array_arg!(times);
input_array_arg!(response);
unsafe { sys::cv_MergeDebevec_process__InputArray__OutputArray__InputArray__InputArray(self.as_raw_MergeDebevec(), src.as_raw__InputArray(), dst.as_raw__OutputArray(), times.as_raw__InputArray(), response.as_raw__InputArray()) }.into_result()
}
fn process(&mut self, src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, times: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
input_array_arg!(times);
unsafe { sys::cv_MergeDebevec_process__InputArray__OutputArray__InputArray(self.as_raw_MergeDebevec(), src.as_raw__InputArray(), dst.as_raw__OutputArray(), times.as_raw__InputArray()) }.into_result()
}
}
pub trait MergeExposures: core::Algorithm {
#[inline(always)] fn as_raw_MergeExposures(&self) -> *mut c_void;
fn process(&mut self, src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, times: &dyn core::ToInputArray, response: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
input_array_arg!(times);
input_array_arg!(response);
unsafe { sys::cv_MergeExposures_process__InputArray__OutputArray__InputArray__InputArray(self.as_raw_MergeExposures(), src.as_raw__InputArray(), dst.as_raw__OutputArray(), times.as_raw__InputArray(), response.as_raw__InputArray()) }.into_result()
}
}
pub trait MergeMertens: crate::photo::MergeExposures {
#[inline(always)] fn as_raw_MergeMertens(&self) -> *mut c_void;
fn process_with_response(&mut self, src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, times: &dyn core::ToInputArray, response: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
input_array_arg!(times);
input_array_arg!(response);
unsafe { sys::cv_MergeMertens_process__InputArray__OutputArray__InputArray__InputArray(self.as_raw_MergeMertens(), src.as_raw__InputArray(), dst.as_raw__OutputArray(), times.as_raw__InputArray(), response.as_raw__InputArray()) }.into_result()
}
fn process(&mut self, src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
unsafe { sys::cv_MergeMertens_process__InputArray__OutputArray(self.as_raw_MergeMertens(), src.as_raw__InputArray(), dst.as_raw__OutputArray()) }.into_result()
}
fn get_contrast_weight(&self) -> Result<f32> {
unsafe { sys::cv_MergeMertens_getContrastWeight_const(self.as_raw_MergeMertens()) }.into_result()
}
fn set_contrast_weight(&mut self, contrast_weiht: f32) -> Result<()> {
unsafe { sys::cv_MergeMertens_setContrastWeight_float(self.as_raw_MergeMertens(), contrast_weiht) }.into_result()
}
fn get_saturation_weight(&self) -> Result<f32> {
unsafe { sys::cv_MergeMertens_getSaturationWeight_const(self.as_raw_MergeMertens()) }.into_result()
}
fn set_saturation_weight(&mut self, saturation_weight: f32) -> Result<()> {
unsafe { sys::cv_MergeMertens_setSaturationWeight_float(self.as_raw_MergeMertens(), saturation_weight) }.into_result()
}
fn get_exposure_weight(&self) -> Result<f32> {
unsafe { sys::cv_MergeMertens_getExposureWeight_const(self.as_raw_MergeMertens()) }.into_result()
}
fn set_exposure_weight(&mut self, exposure_weight: f32) -> Result<()> {
unsafe { sys::cv_MergeMertens_setExposureWeight_float(self.as_raw_MergeMertens(), exposure_weight) }.into_result()
}
}
pub trait MergeRobertson: crate::photo::MergeExposures {
#[inline(always)] fn as_raw_MergeRobertson(&self) -> *mut c_void;
fn process_with_response(&mut self, src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, times: &dyn core::ToInputArray, response: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
input_array_arg!(times);
input_array_arg!(response);
unsafe { sys::cv_MergeRobertson_process__InputArray__OutputArray__InputArray__InputArray(self.as_raw_MergeRobertson(), src.as_raw__InputArray(), dst.as_raw__OutputArray(), times.as_raw__InputArray(), response.as_raw__InputArray()) }.into_result()
}
fn process(&mut self, src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray, times: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
input_array_arg!(times);
unsafe { sys::cv_MergeRobertson_process__InputArray__OutputArray__InputArray(self.as_raw_MergeRobertson(), src.as_raw__InputArray(), dst.as_raw__OutputArray(), times.as_raw__InputArray()) }.into_result()
}
}
pub trait Tonemap: core::Algorithm {
#[inline(always)] fn as_raw_Tonemap(&self) -> *mut c_void;
fn process(&mut self, src: &dyn core::ToInputArray, dst: &mut dyn core::ToOutputArray) -> Result<()> {
input_array_arg!(src);
output_array_arg!(dst);
unsafe { sys::cv_Tonemap_process__InputArray__OutputArray(self.as_raw_Tonemap(), src.as_raw__InputArray(), dst.as_raw__OutputArray()) }.into_result()
}
fn get_gamma(&self) -> Result<f32> {
unsafe { sys::cv_Tonemap_getGamma_const(self.as_raw_Tonemap()) }.into_result()
}
fn set_gamma(&mut self, gamma: f32) -> Result<()> {
unsafe { sys::cv_Tonemap_setGamma_float(self.as_raw_Tonemap(), gamma) }.into_result()
}
}
pub trait TonemapDrago: crate::photo::Tonemap {
#[inline(always)] fn as_raw_TonemapDrago(&self) -> *mut c_void;
fn get_saturation(&self) -> Result<f32> {
unsafe { sys::cv_TonemapDrago_getSaturation_const(self.as_raw_TonemapDrago()) }.into_result()
}
fn set_saturation(&mut self, saturation: f32) -> Result<()> {
unsafe { sys::cv_TonemapDrago_setSaturation_float(self.as_raw_TonemapDrago(), saturation) }.into_result()
}
fn get_bias(&self) -> Result<f32> {
unsafe { sys::cv_TonemapDrago_getBias_const(self.as_raw_TonemapDrago()) }.into_result()
}
fn set_bias(&mut self, bias: f32) -> Result<()> {
unsafe { sys::cv_TonemapDrago_setBias_float(self.as_raw_TonemapDrago(), bias) }.into_result()
}
}
pub trait TonemapMantiuk: crate::photo::Tonemap {
#[inline(always)] fn as_raw_TonemapMantiuk(&self) -> *mut c_void;
fn get_scale(&self) -> Result<f32> {
unsafe { sys::cv_TonemapMantiuk_getScale_const(self.as_raw_TonemapMantiuk()) }.into_result()
}
fn set_scale(&mut self, scale: f32) -> Result<()> {
unsafe { sys::cv_TonemapMantiuk_setScale_float(self.as_raw_TonemapMantiuk(), scale) }.into_result()
}
fn get_saturation(&self) -> Result<f32> {
unsafe { sys::cv_TonemapMantiuk_getSaturation_const(self.as_raw_TonemapMantiuk()) }.into_result()
}
fn set_saturation(&mut self, saturation: f32) -> Result<()> {
unsafe { sys::cv_TonemapMantiuk_setSaturation_float(self.as_raw_TonemapMantiuk(), saturation) }.into_result()
}
}
pub trait TonemapReinhard: crate::photo::Tonemap {
#[inline(always)] fn as_raw_TonemapReinhard(&self) -> *mut c_void;
fn get_intensity(&self) -> Result<f32> {
unsafe { sys::cv_TonemapReinhard_getIntensity_const(self.as_raw_TonemapReinhard()) }.into_result()
}
fn set_intensity(&mut self, intensity: f32) -> Result<()> {
unsafe { sys::cv_TonemapReinhard_setIntensity_float(self.as_raw_TonemapReinhard(), intensity) }.into_result()
}
fn get_light_adaptation(&self) -> Result<f32> {
unsafe { sys::cv_TonemapReinhard_getLightAdaptation_const(self.as_raw_TonemapReinhard()) }.into_result()
}
fn set_light_adaptation(&mut self, light_adapt: f32) -> Result<()> {
unsafe { sys::cv_TonemapReinhard_setLightAdaptation_float(self.as_raw_TonemapReinhard(), light_adapt) }.into_result()
}
fn get_color_adaptation(&self) -> Result<f32> {
unsafe { sys::cv_TonemapReinhard_getColorAdaptation_const(self.as_raw_TonemapReinhard()) }.into_result()
}
fn set_color_adaptation(&mut self, color_adapt: f32) -> Result<()> {
unsafe { sys::cv_TonemapReinhard_setColorAdaptation_float(self.as_raw_TonemapReinhard(), color_adapt) }.into_result()
}
}