use std::os::raw::{c_char, c_void};
use libc::size_t;
use crate::{Error, Result, core, sys, types};
pub const DNN_BACKEND_DEFAULT: i32 = 0;
pub const DNN_BACKEND_HALIDE: i32 = 1;
pub const DNN_BACKEND_INFERENCE_ENGINE: i32 = 2;
pub const DNN_BACKEND_OPENCV: i32 = 3;
pub const DNN_TARGET_CPU: i32 = 0;
pub const DNN_TARGET_FPGA: i32 = 4;
pub const DNN_TARGET_MYRIAD: i32 = 3;
pub const DNN_TARGET_OPENCL: i32 = 1;
pub const DNN_TARGET_OPENCL_FP16: i32 = 2;
#[repr(C)]
#[derive(Copy,Clone,Debug,PartialEq)]
pub struct Net {
__rust_private: [u8; 0],
}
pub fn nms_boxes_rotated_f64(bboxes: &types::VectorOfRect2d, scores: &types::VectorOffloat, score_threshold: f32, nms_threshold: f32, indices: &types::VectorOfint, eta: f32, top_k: i32) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_NMSBoxes_VectorOfRect2d_bboxes_VectorOffloat_scores_float_score_threshold_float_nms_threshold_VectorOfint_indices_float_eta_int_top_k(bboxes.as_raw_VectorOfRect2d(), scores.as_raw_VectorOffloat(), score_threshold, nms_threshold, indices.as_raw_VectorOfint(), eta, top_k) }.into_result()
}
pub fn nms_boxes(bboxes: &types::VectorOfRect, scores: &types::VectorOffloat, score_threshold: f32, nms_threshold: f32, indices: &types::VectorOfint, eta: f32, top_k: i32) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_NMSBoxes_VectorOfRect_bboxes_VectorOffloat_scores_float_score_threshold_float_nms_threshold_VectorOfint_indices_float_eta_int_top_k(bboxes.as_raw_VectorOfRect(), scores.as_raw_VectorOffloat(), score_threshold, nms_threshold, indices.as_raw_VectorOfint(), eta, top_k) }.into_result()
}
pub fn nms_boxes_rotated(bboxes: &types::VectorOfRotatedRect, scores: &types::VectorOffloat, score_threshold: f32, nms_threshold: f32, indices: &types::VectorOfint, eta: f32, top_k: i32) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_NMSBoxes_VectorOfRotatedRect_bboxes_VectorOffloat_scores_float_score_threshold_float_nms_threshold_VectorOfint_indices_float_eta_int_top_k(bboxes.as_raw_VectorOfRotatedRect(), scores.as_raw_VectorOffloat(), score_threshold, nms_threshold, indices.as_raw_VectorOfint(), eta, top_k) }.into_result()
}
pub fn blob_from_image(image: &core::Mat, blob: &mut core::Mat, scalefactor: f64, size: core::Size, mean: core::Scalar, swap_rb: bool, crop: bool, ddepth: i32) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_blobFromImage_Mat_image_Mat_blob_double_scalefactor_Size_size_Scalar_mean_bool_swapRB_bool_crop_int_ddepth(image.as_raw_Mat(), blob.as_raw_Mat(), scalefactor, size, mean, swap_rb, crop, ddepth) }.into_result()
}
pub fn blob_from_image_1(image: &core::Mat, scalefactor: f64, size: core::Size, mean: core::Scalar, swap_rb: bool, crop: bool, ddepth: i32) -> Result<core::Mat> {
unsafe { sys::cv_dnn_cv_dnn_blobFromImage_Mat_image_double_scalefactor_Size_size_Scalar_mean_bool_swapRB_bool_crop_int_ddepth(image.as_raw_Mat(), scalefactor, size, mean, swap_rb, crop, ddepth) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn blob_from_images(images: &types::VectorOfMat, blob: &mut core::Mat, scalefactor: f64, size: core::Size, mean: core::Scalar, swap_rb: bool, crop: bool, ddepth: i32) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_blobFromImages_VectorOfMat_images_Mat_blob_double_scalefactor_Size_size_Scalar_mean_bool_swapRB_bool_crop_int_ddepth(images.as_raw_VectorOfMat(), blob.as_raw_Mat(), scalefactor, size, mean, swap_rb, crop, ddepth) }.into_result()
}
pub fn blob_from_images_1(images: &types::VectorOfMat, scalefactor: f64, size: core::Size, mean: core::Scalar, swap_rb: bool, crop: bool, ddepth: i32) -> Result<core::Mat> {
unsafe { sys::cv_dnn_cv_dnn_blobFromImages_VectorOfMat_images_double_scalefactor_Size_size_Scalar_mean_bool_swapRB_bool_crop_int_ddepth(images.as_raw_VectorOfMat(), scalefactor, size, mean, swap_rb, crop, ddepth) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn clamp(r: &core::Range, axis_size: i32) -> Result<core::Range> {
unsafe { sys::cv_dnn_cv_dnn_clamp_Range_r_int_axisSize(r.as_raw_Range(), axis_size) }.into_result().map(|x| core::Range { ptr: x })
}
pub fn clamp_1(ax: i32, dims: i32) -> Result<i32> {
unsafe { sys::cv_dnn_cv_dnn_clamp_int_ax_int_dims(ax, dims) }.into_result()
}
pub fn get_plane(m: &core::Mat, n: i32, cn: i32) -> Result<core::Mat> {
unsafe { sys::cv_dnn_cv_dnn_getPlane_Mat_m_int_n_int_cn(m.as_raw_Mat(), n, cn) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn images_from_blob(blob_: &core::Mat, images_: &mut types::VectorOfMat) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_imagesFromBlob_Mat_blob__VectorOfMat_images_(blob_.as_raw_Mat(), images_.as_raw_VectorOfMat()) }.into_result()
}
pub fn read_net_from_caffe(prototxt: &str, caffe_model: &str) -> Result<crate::dnn::Net> {
string_arg!(prototxt);
string_arg!(caffe_model);
unsafe { sys::cv_dnn_cv_dnn_readNetFromCaffe_String_prototxt_String_caffeModel(prototxt.as_ptr(), caffe_model.as_ptr()) }.into_result()
}
pub fn read_net_from_caffe_1(buffer_proto: &types::VectorOfuchar, buffer_model: &types::VectorOfuchar) -> Result<crate::dnn::Net> {
unsafe { sys::cv_dnn_cv_dnn_readNetFromCaffe_VectorOfuchar_bufferProto_VectorOfuchar_bufferModel(buffer_proto.as_raw_VectorOfuchar(), buffer_model.as_raw_VectorOfuchar()) }.into_result()
}
pub fn read_net_from_caffe_2(buffer_proto: &str, len_proto: size_t, buffer_model: &str, len_model: size_t) -> Result<crate::dnn::Net> {
string_arg!(buffer_proto);
string_arg!(buffer_model);
unsafe { sys::cv_dnn_cv_dnn_readNetFromCaffe_const_char_X_bufferProto_size_t_lenProto_const_char_X_bufferModel_size_t_lenModel(buffer_proto.as_ptr(), len_proto, buffer_model.as_ptr(), len_model) }.into_result()
}
pub fn read_net_from_darknet(cfg_file: &str, darknet_model: &str) -> Result<crate::dnn::Net> {
string_arg!(cfg_file);
string_arg!(darknet_model);
unsafe { sys::cv_dnn_cv_dnn_readNetFromDarknet_String_cfgFile_String_darknetModel(cfg_file.as_ptr(), darknet_model.as_ptr()) }.into_result()
}
pub fn read_net_from_darknet_1(buffer_cfg: &types::VectorOfuchar, buffer_model: &types::VectorOfuchar) -> Result<crate::dnn::Net> {
unsafe { sys::cv_dnn_cv_dnn_readNetFromDarknet_VectorOfuchar_bufferCfg_VectorOfuchar_bufferModel(buffer_cfg.as_raw_VectorOfuchar(), buffer_model.as_raw_VectorOfuchar()) }.into_result()
}
pub fn read_net_from_darknet_2(buffer_cfg: &str, len_cfg: size_t, buffer_model: &str, len_model: size_t) -> Result<crate::dnn::Net> {
string_arg!(buffer_cfg);
string_arg!(buffer_model);
unsafe { sys::cv_dnn_cv_dnn_readNetFromDarknet_const_char_X_bufferCfg_size_t_lenCfg_const_char_X_bufferModel_size_t_lenModel(buffer_cfg.as_ptr(), len_cfg, buffer_model.as_ptr(), len_model) }.into_result()
}
pub fn read_net_from_model_optimizer(xml: &str, bin: &str) -> Result<crate::dnn::Net> {
string_arg!(xml);
string_arg!(bin);
unsafe { sys::cv_dnn_cv_dnn_readNetFromModelOptimizer_String_xml_String_bin(xml.as_ptr(), bin.as_ptr()) }.into_result()
}
pub fn read_net_from_onnx(onnx_file: &str) -> Result<crate::dnn::Net> {
string_arg!(onnx_file);
unsafe { sys::cv_dnn_cv_dnn_readNetFromONNX_String_onnxFile(onnx_file.as_ptr()) }.into_result()
}
pub fn read_net_from_tensorflow(model: &str, config: &str) -> Result<crate::dnn::Net> {
string_arg!(model);
string_arg!(config);
unsafe { sys::cv_dnn_cv_dnn_readNetFromTensorflow_String_model_String_config(model.as_ptr(), config.as_ptr()) }.into_result()
}
pub fn read_net_from_tensorflow_1(buffer_model: &types::VectorOfuchar, buffer_config: &types::VectorOfuchar) -> Result<crate::dnn::Net> {
unsafe { sys::cv_dnn_cv_dnn_readNetFromTensorflow_VectorOfuchar_bufferModel_VectorOfuchar_bufferConfig(buffer_model.as_raw_VectorOfuchar(), buffer_config.as_raw_VectorOfuchar()) }.into_result()
}
pub fn read_net_from_tensorflow_2(buffer_model: &str, len_model: size_t, buffer_config: &str, len_config: size_t) -> Result<crate::dnn::Net> {
string_arg!(buffer_model);
string_arg!(buffer_config);
unsafe { sys::cv_dnn_cv_dnn_readNetFromTensorflow_const_char_X_bufferModel_size_t_lenModel_const_char_X_bufferConfig_size_t_lenConfig(buffer_model.as_ptr(), len_model, buffer_config.as_ptr(), len_config) }.into_result()
}
pub fn read_net_from_torch(model: &str, is_binary: bool, evaluate: bool) -> Result<crate::dnn::Net> {
string_arg!(model);
unsafe { sys::cv_dnn_cv_dnn_readNetFromTorch_String_model_bool_isBinary_bool_evaluate(model.as_ptr(), is_binary, evaluate) }.into_result()
}
pub fn read_net(framework: &str, buffer_model: &types::VectorOfuchar, buffer_config: &types::VectorOfuchar) -> Result<crate::dnn::Net> {
string_arg!(framework);
unsafe { sys::cv_dnn_cv_dnn_readNet_String_framework_VectorOfuchar_bufferModel_VectorOfuchar_bufferConfig(framework.as_ptr(), buffer_model.as_raw_VectorOfuchar(), buffer_config.as_raw_VectorOfuchar()) }.into_result()
}
pub fn read_net_1(model: &str, config: &str, framework: &str) -> Result<crate::dnn::Net> {
string_arg!(model);
string_arg!(config);
string_arg!(framework);
unsafe { sys::cv_dnn_cv_dnn_readNet_String_model_String_config_String_framework(model.as_ptr(), config.as_ptr(), framework.as_ptr()) }.into_result()
}
pub fn read_tensor_from_onnx(path: &str) -> Result<core::Mat> {
string_arg!(path);
unsafe { sys::cv_dnn_cv_dnn_readTensorFromONNX_String_path(path.as_ptr()) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn read_torch_blob(filename: &str, is_binary: bool) -> Result<core::Mat> {
string_arg!(filename);
unsafe { sys::cv_dnn_cv_dnn_readTorchBlob_String_filename_bool_isBinary(filename.as_ptr(), is_binary) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn reset_myriad_device() -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_resetMyriadDevice() }.into_result()
}
pub fn shape(mat: &core::Mat) -> Result<types::VectorOfint> {
unsafe { sys::cv_dnn_cv_dnn_shape_Mat_mat(mat.as_raw_Mat()) }.into_result().map(|x| types::VectorOfint { ptr: x })
}
pub fn shape_1(dims: &i32, n: i32) -> Result<types::VectorOfint> {
unsafe { sys::cv_dnn_cv_dnn_shape_const_int_X_dims_int_n(dims, n) }.into_result().map(|x| types::VectorOfint { ptr: x })
}
pub fn shape_2(a0: i32, a1: i32, a2: i32, a3: i32) -> Result<types::VectorOfint> {
unsafe { sys::cv_dnn_cv_dnn_shape_int_a0_int_a1_int_a2_int_a3(a0, a1, a2, a3) }.into_result().map(|x| types::VectorOfint { ptr: x })
}
pub fn shrink_caffe_model(src: &str, dst: &str, layers_types: &types::VectorOfString) -> Result<()> {
string_arg!(src);
string_arg!(dst);
unsafe { sys::cv_dnn_cv_dnn_shrinkCaffeModel_String_src_String_dst_VectorOfString_layersTypes(src.as_ptr(), dst.as_ptr(), layers_types.as_raw_VectorOfString()) }.into_result()
}
pub fn slice(m: &core::Mat, r0: &core::Range) -> Result<core::Mat> {
unsafe { sys::cv_dnn_cv_dnn_slice_Mat_m_Range_r0(m.as_raw_Mat(), r0.as_raw_Range()) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn slice_1(m: &core::Mat, r0: &core::Range, r1: &core::Range) -> Result<core::Mat> {
unsafe { sys::cv_dnn_cv_dnn_slice_Mat_m_Range_r0_Range_r1(m.as_raw_Mat(), r0.as_raw_Range(), r1.as_raw_Range()) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn slice_2(m: &core::Mat, r0: &core::Range, r1: &core::Range, r2: &core::Range) -> Result<core::Mat> {
unsafe { sys::cv_dnn_cv_dnn_slice_Mat_m_Range_r0_Range_r1_Range_r2(m.as_raw_Mat(), r0.as_raw_Range(), r1.as_raw_Range(), r2.as_raw_Range()) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn slice_3(m: &core::Mat, r0: &core::Range, r1: &core::Range, r2: &core::Range, r3: &core::Range) -> Result<core::Mat> {
unsafe { sys::cv_dnn_cv_dnn_slice_Mat_m_Range_r0_Range_r1_Range_r2_Range_r3(m.as_raw_Mat(), r0.as_raw_Range(), r1.as_raw_Range(), r2.as_raw_Range(), r3.as_raw_Range()) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn write_text_graph(model: &str, output: &str) -> Result<()> {
string_arg!(model);
string_arg!(output);
unsafe { sys::cv_dnn_cv_dnn_writeTextGraph_String_model_String_output(model.as_ptr(), output.as_ptr()) }.into_result()
}
#[allow(dead_code)]
pub struct AbsLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::AbsLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_AbsLayer(self.ptr) };
}
}
impl crate::dnn::AbsLayer {
#[doc(hidden)] pub fn as_raw_AbsLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for AbsLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for AbsLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::ActivationLayer for AbsLayer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void { self.ptr }
}
impl AbsLayer {
}
pub trait ActivationLayer : crate::dnn::Layer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void;
fn forward_slice(&self, src: &f32, dst: &mut f32, len: i32, out_plane_size: size_t, cn0: i32, cn1: i32) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_ActivationLayer_forwardSlice_const_const_float_X_src_float_X_dst_int_len_size_t_outPlaneSize_int_cn0_int_cn1(self.as_raw_ActivationLayer(), src, dst, len, out_plane_size, cn0, cn1) }.into_result()
}
}
impl<'a> ActivationLayer + 'a {
}
#[allow(dead_code)]
pub struct BNLLLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::BNLLLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_BNLLLayer(self.ptr) };
}
}
impl crate::dnn::BNLLLayer {
#[doc(hidden)] pub fn as_raw_BNLLLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for BNLLLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for BNLLLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::ActivationLayer for BNLLLayer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void { self.ptr }
}
impl BNLLLayer {
}
#[allow(dead_code)]
pub struct BackendNode {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::BackendNode {
fn drop(&mut self) {
unsafe { sys::cv_delete_BackendNode(self.ptr) };
}
}
impl crate::dnn::BackendNode {
#[doc(hidden)] pub fn as_raw_BackendNode(&self) -> *mut c_void { self.ptr }
}
impl BackendNode {
pub fn new(backend_id: i32) -> Result<crate::dnn::BackendNode> {
unsafe { sys::cv_dnn_cv_dnn_BackendNode_BackendNode_int_backendId(backend_id) }.into_result().map(|x| crate::dnn::BackendNode { ptr: x })
}
}
pub trait BackendWrapper {
#[doc(hidden)] fn as_raw_BackendWrapper(&self) -> *mut c_void;
fn copy_to_host(&mut self) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_BackendWrapper_copyToHost(self.as_raw_BackendWrapper()) }.into_result()
}
fn set_host_dirty(&mut self) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_BackendWrapper_setHostDirty(self.as_raw_BackendWrapper()) }.into_result()
}
}
impl<'a> BackendWrapper + 'a {
}
pub trait BaseConvolutionLayer : crate::dnn::Layer {
#[doc(hidden)] fn as_raw_BaseConvolutionLayer(&self) -> *mut c_void;
}
impl<'a> BaseConvolutionLayer + 'a {
}
#[allow(dead_code)]
pub struct BatchNormLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::BatchNormLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_BatchNormLayer(self.ptr) };
}
}
impl crate::dnn::BatchNormLayer {
#[doc(hidden)] pub fn as_raw_BatchNormLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for BatchNormLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for BatchNormLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::ActivationLayer for BatchNormLayer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void { self.ptr }
}
impl BatchNormLayer {
}
#[allow(dead_code)]
pub struct BlankLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::BlankLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_BlankLayer(self.ptr) };
}
}
impl crate::dnn::BlankLayer {
#[doc(hidden)] pub fn as_raw_BlankLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for BlankLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for BlankLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl BlankLayer {
}
#[allow(dead_code)]
pub struct ChannelsPReLULayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ChannelsPReLULayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ChannelsPReLULayer(self.ptr) };
}
}
impl crate::dnn::ChannelsPReLULayer {
#[doc(hidden)] pub fn as_raw_ChannelsPReLULayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ChannelsPReLULayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ChannelsPReLULayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::ActivationLayer for ChannelsPReLULayer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void { self.ptr }
}
impl ChannelsPReLULayer {
}
#[allow(dead_code)]
pub struct ConcatLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ConcatLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ConcatLayer(self.ptr) };
}
}
impl crate::dnn::ConcatLayer {
#[doc(hidden)] pub fn as_raw_ConcatLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ConcatLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ConcatLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl ConcatLayer {
}
#[allow(dead_code)]
pub struct ConstLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ConstLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ConstLayer(self.ptr) };
}
}
impl crate::dnn::ConstLayer {
#[doc(hidden)] pub fn as_raw_ConstLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ConstLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ConstLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl ConstLayer {
}
#[allow(dead_code)]
pub struct ConvolutionLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ConvolutionLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ConvolutionLayer(self.ptr) };
}
}
impl crate::dnn::ConvolutionLayer {
#[doc(hidden)] pub fn as_raw_ConvolutionLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::BaseConvolutionLayer for ConvolutionLayer {
#[doc(hidden)] fn as_raw_BaseConvolutionLayer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ConvolutionLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ConvolutionLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl ConvolutionLayer {
}
#[allow(dead_code)]
pub struct CropAndResizeLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::CropAndResizeLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_CropAndResizeLayer(self.ptr) };
}
}
impl crate::dnn::CropAndResizeLayer {
#[doc(hidden)] pub fn as_raw_CropAndResizeLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for CropAndResizeLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for CropAndResizeLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl CropAndResizeLayer {
}
#[allow(dead_code)]
pub struct CropLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::CropLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_CropLayer(self.ptr) };
}
}
impl crate::dnn::CropLayer {
#[doc(hidden)] pub fn as_raw_CropLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for CropLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for CropLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl CropLayer {
}
#[allow(dead_code)]
pub struct DeconvolutionLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::DeconvolutionLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_DeconvolutionLayer(self.ptr) };
}
}
impl crate::dnn::DeconvolutionLayer {
#[doc(hidden)] pub fn as_raw_DeconvolutionLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::BaseConvolutionLayer for DeconvolutionLayer {
#[doc(hidden)] fn as_raw_BaseConvolutionLayer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for DeconvolutionLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for DeconvolutionLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl DeconvolutionLayer {
}
#[allow(dead_code)]
pub struct DetectionOutputLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::DetectionOutputLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_DetectionOutputLayer(self.ptr) };
}
}
impl crate::dnn::DetectionOutputLayer {
#[doc(hidden)] pub fn as_raw_DetectionOutputLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for DetectionOutputLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for DetectionOutputLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl DetectionOutputLayer {
}
pub trait Dict {
#[doc(hidden)] fn as_raw_Dict(&self) -> *mut c_void;
fn has(&self, key: &str) -> Result<bool> {
string_arg!(key);
unsafe { sys::cv_dnn_cv_dnn_Dict_has_const_String_key(self.as_raw_Dict(), key.as_ptr()) }.into_result()
}
fn ptr_mut(&mut self, key: &str) -> Result<crate::dnn::DictValue> {
string_arg!(key);
unsafe { sys::cv_dnn_cv_dnn_Dict_ptr_String_key(self.as_raw_Dict(), key.as_ptr()) }.into_result().map(|x| crate::dnn::DictValue { ptr: x })
}
fn ptr(&self, key: &str) -> Result<crate::dnn::DictValue> {
string_arg!(key);
unsafe { sys::cv_dnn_cv_dnn_Dict_ptr_const_String_key(self.as_raw_Dict(), key.as_ptr()) }.into_result().map(|x| crate::dnn::DictValue { ptr: x })
}
fn get(&self, key: &str) -> Result<crate::dnn::DictValue> {
string_arg!(key);
unsafe { sys::cv_dnn_cv_dnn_Dict_get_const_String_key(self.as_raw_Dict(), key.as_ptr()) }.into_result().map(|x| crate::dnn::DictValue { ptr: x })
}
fn erase(&mut self, key: &str) -> Result<()> {
string_arg!(key);
unsafe { sys::cv_dnn_cv_dnn_Dict_erase_String_key(self.as_raw_Dict(), key.as_ptr()) }.into_result()
}
}
impl<'a> Dict + 'a {
}
#[allow(dead_code)]
pub struct DictValue {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::DictValue {
fn drop(&mut self) {
unsafe { sys::cv_delete_DictValue(self.ptr) };
}
}
impl crate::dnn::DictValue {
#[doc(hidden)] pub fn as_raw_DictValue(&self) -> *mut c_void { self.ptr }
}
impl DictValue {
pub fn new(r: &crate::dnn::DictValue) -> Result<crate::dnn::DictValue> {
unsafe { sys::cv_dnn_cv_dnn_DictValue_DictValue_DictValue_r(r.as_raw_DictValue()) }.into_result().map(|x| crate::dnn::DictValue { ptr: x })
}
pub fn size(&self) -> Result<i32> {
unsafe { sys::cv_dnn_cv_dnn_DictValue_size_const(self.as_raw_DictValue()) }.into_result()
}
pub fn is_int(&self) -> Result<bool> {
unsafe { sys::cv_dnn_cv_dnn_DictValue_isInt_const(self.as_raw_DictValue()) }.into_result()
}
pub fn is_string(&self) -> Result<bool> {
unsafe { sys::cv_dnn_cv_dnn_DictValue_isString_const(self.as_raw_DictValue()) }.into_result()
}
pub fn is_real(&self) -> Result<bool> {
unsafe { sys::cv_dnn_cv_dnn_DictValue_isReal_const(self.as_raw_DictValue()) }.into_result()
}
pub fn get_int_value(&self, idx: i32) -> Result<i32> {
unsafe { sys::cv_dnn_cv_dnn_DictValue_getIntValue_const_int_idx(self.as_raw_DictValue(), idx) }.into_result()
}
pub fn get_real_value(&self, idx: i32) -> Result<f64> {
unsafe { sys::cv_dnn_cv_dnn_DictValue_getRealValue_const_int_idx(self.as_raw_DictValue(), idx) }.into_result()
}
pub fn get_string_value(&self, idx: i32) -> Result<String> {
unsafe { sys::cv_dnn_cv_dnn_DictValue_getStringValue_const_int_idx(self.as_raw_DictValue(), idx) }.into_result().map(crate::templ::receive_string_mut)
}
}
#[allow(dead_code)]
pub struct ELULayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ELULayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ELULayer(self.ptr) };
}
}
impl crate::dnn::ELULayer {
#[doc(hidden)] pub fn as_raw_ELULayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ELULayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ELULayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::ActivationLayer for ELULayer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void { self.ptr }
}
impl ELULayer {
}
#[allow(dead_code)]
pub struct EltwiseLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::EltwiseLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_EltwiseLayer(self.ptr) };
}
}
impl crate::dnn::EltwiseLayer {
#[doc(hidden)] pub fn as_raw_EltwiseLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for EltwiseLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for EltwiseLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl EltwiseLayer {
}
#[allow(dead_code)]
pub struct FlattenLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::FlattenLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_FlattenLayer(self.ptr) };
}
}
impl crate::dnn::FlattenLayer {
#[doc(hidden)] pub fn as_raw_FlattenLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for FlattenLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for FlattenLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl FlattenLayer {
}
#[allow(dead_code)]
pub struct InnerProductLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::InnerProductLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_InnerProductLayer(self.ptr) };
}
}
impl crate::dnn::InnerProductLayer {
#[doc(hidden)] pub fn as_raw_InnerProductLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for InnerProductLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for InnerProductLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl InnerProductLayer {
}
#[allow(dead_code)]
pub struct InterpLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::InterpLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_InterpLayer(self.ptr) };
}
}
impl crate::dnn::InterpLayer {
#[doc(hidden)] pub fn as_raw_InterpLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for InterpLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for InterpLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl InterpLayer {
}
#[allow(dead_code)]
pub struct LRNLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::LRNLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_LRNLayer(self.ptr) };
}
}
impl crate::dnn::LRNLayer {
#[doc(hidden)] pub fn as_raw_LRNLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for LRNLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for LRNLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl LRNLayer {
}
pub trait LSTMLayer : crate::dnn::Layer {
#[doc(hidden)] fn as_raw_LSTMLayer(&self) -> *mut c_void;
fn set_weights(&mut self, wh: &core::Mat, wx: &core::Mat, b: &core::Mat) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_LSTMLayer_setWeights_Mat_Wh_Mat_Wx_Mat_b(self.as_raw_LSTMLayer(), wh.as_raw_Mat(), wx.as_raw_Mat(), b.as_raw_Mat()) }.into_result()
}
fn set_use_timstamps_dim(&mut self, _use: bool) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_LSTMLayer_setUseTimstampsDim_bool_use(self.as_raw_LSTMLayer(), _use) }.into_result()
}
fn set_produce_cell_output(&mut self, produce: bool) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_LSTMLayer_setProduceCellOutput_bool_produce(self.as_raw_LSTMLayer(), produce) }.into_result()
}
fn input_name_to_index(&mut self, input_name: &str) -> Result<i32> {
string_arg!(mut input_name);
unsafe { sys::cv_dnn_cv_dnn_LSTMLayer_inputNameToIndex_String_inputName(self.as_raw_LSTMLayer(), input_name.as_ptr() as _) }.into_result()
}
fn output_name_to_index(&mut self, output_name: &str) -> Result<i32> {
string_arg!(output_name);
unsafe { sys::cv_dnn_cv_dnn_LSTMLayer_outputNameToIndex_String_outputName(self.as_raw_LSTMLayer(), output_name.as_ptr()) }.into_result()
}
}
impl<'a> LSTMLayer + 'a {
}
pub trait Layer : core::Algorithm {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void;
fn finalize(&mut self, inputs: &types::VectorOfMat, outputs: &mut types::VectorOfMat) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Layer_finalize_VectorOfMat_inputs_VectorOfMat_outputs(self.as_raw_Layer(), inputs.as_raw_VectorOfMat(), outputs.as_raw_VectorOfMat()) }.into_result()
}
fn forward(&mut self, inputs: &types::VectorOfMat, outputs: &mut types::VectorOfMat, internals: &mut types::VectorOfMat) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Layer_forward_VectorOfMat_inputs_VectorOfMat_outputs_VectorOfMat_internals(self.as_raw_Layer(), inputs.as_raw_VectorOfMat(), outputs.as_raw_VectorOfMat(), internals.as_raw_VectorOfMat()) }.into_result()
}
fn forward_fallback(&mut self, inputs: &types::VectorOfMat, outputs: &mut types::VectorOfMat, internals: &mut types::VectorOfMat) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Layer_forward_fallback_VectorOfMat_inputs_VectorOfMat_outputs_VectorOfMat_internals(self.as_raw_Layer(), inputs.as_raw_VectorOfMat(), outputs.as_raw_VectorOfMat(), internals.as_raw_VectorOfMat()) }.into_result()
}
fn finalize_1(&mut self, inputs: &types::VectorOfMat) -> Result<types::VectorOfMat> {
unsafe { sys::cv_dnn_cv_dnn_Layer_finalize_VectorOfMat_inputs(self.as_raw_Layer(), inputs.as_raw_VectorOfMat()) }.into_result().map(|x| types::VectorOfMat { ptr: x })
}
fn run(&mut self, inputs: &types::VectorOfMat, outputs: &types::VectorOfMat, internals: &types::VectorOfMat) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Layer_run_VectorOfMat_inputs_VectorOfMat_outputs_VectorOfMat_internals(self.as_raw_Layer(), inputs.as_raw_VectorOfMat(), outputs.as_raw_VectorOfMat(), internals.as_raw_VectorOfMat()) }.into_result()
}
fn input_name_to_index(&mut self, input_name: &str) -> Result<i32> {
string_arg!(mut input_name);
unsafe { sys::cv_dnn_cv_dnn_Layer_inputNameToIndex_String_inputName(self.as_raw_Layer(), input_name.as_ptr() as _) }.into_result()
}
fn output_name_to_index(&mut self, output_name: &str) -> Result<i32> {
string_arg!(output_name);
unsafe { sys::cv_dnn_cv_dnn_Layer_outputNameToIndex_String_outputName(self.as_raw_Layer(), output_name.as_ptr()) }.into_result()
}
fn support_backend(&mut self, backend_id: i32) -> Result<bool> {
unsafe { sys::cv_dnn_cv_dnn_Layer_supportBackend_int_backendId(self.as_raw_Layer(), backend_id) }.into_result()
}
fn init_halide(&mut self, inputs: &types::VectorOfPtrOfBackendWrapper) -> Result<types::PtrOfBackendNode> {
unsafe { sys::cv_dnn_cv_dnn_Layer_initHalide_VectorOfPtrOfBackendWrapper_inputs(self.as_raw_Layer(), inputs.as_raw_VectorOfPtrOfBackendWrapper()) }.into_result().map(|x| types::PtrOfBackendNode { ptr: x })
}
fn init_inf_engine(&mut self, inputs: &types::VectorOfPtrOfBackendWrapper) -> Result<types::PtrOfBackendNode> {
unsafe { sys::cv_dnn_cv_dnn_Layer_initInfEngine_VectorOfPtrOfBackendWrapper_inputs(self.as_raw_Layer(), inputs.as_raw_VectorOfPtrOfBackendWrapper()) }.into_result().map(|x| types::PtrOfBackendNode { ptr: x })
}
fn try_attach(&mut self, node: &types::PtrOfBackendNode) -> Result<types::PtrOfBackendNode> {
unsafe { sys::cv_dnn_cv_dnn_Layer_tryAttach_PtrOfBackendNode_node(self.as_raw_Layer(), node.as_raw_PtrOfBackendNode()) }.into_result().map(|x| types::PtrOfBackendNode { ptr: x })
}
fn set_activation(&mut self, layer: &types::PtrOfActivationLayer) -> Result<bool> {
unsafe { sys::cv_dnn_cv_dnn_Layer_setActivation_PtrOfActivationLayer_layer(self.as_raw_Layer(), layer.as_raw_PtrOfActivationLayer()) }.into_result()
}
fn get_scale_shift(&self, scale: &core::Mat, shift: &core::Mat) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Layer_getScaleShift_const_Mat_scale_Mat_shift(self.as_raw_Layer(), scale.as_raw_Mat(), shift.as_raw_Mat()) }.into_result()
}
fn unset_attached(&mut self) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Layer_unsetAttached(self.as_raw_Layer()) }.into_result()
}
fn get_memory_shapes(&self, inputs: &types::VectorOfVectorOfint, required_outputs: i32, outputs: &types::VectorOfVectorOfint, internals: &types::VectorOfVectorOfint) -> Result<bool> {
unsafe { sys::cv_dnn_cv_dnn_Layer_getMemoryShapes_const_VectorOfVectorOfint_inputs_int_requiredOutputs_VectorOfVectorOfint_outputs_VectorOfVectorOfint_internals(self.as_raw_Layer(), inputs.as_raw_VectorOfVectorOfint(), required_outputs, outputs.as_raw_VectorOfVectorOfint(), internals.as_raw_VectorOfVectorOfint()) }.into_result()
}
fn get_flops(&self, inputs: &types::VectorOfVectorOfint, outputs: &types::VectorOfVectorOfint) -> Result<i64> {
unsafe { sys::cv_dnn_cv_dnn_Layer_getFLOPS_const_VectorOfVectorOfint_inputs_VectorOfVectorOfint_outputs(self.as_raw_Layer(), inputs.as_raw_VectorOfVectorOfint(), outputs.as_raw_VectorOfVectorOfint()) }.into_result()
}
}
impl<'a> Layer + 'a {
}
#[allow(dead_code)]
pub struct LayerFactory {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::LayerFactory {
fn drop(&mut self) {
unsafe { sys::cv_delete_LayerFactory(self.ptr) };
}
}
impl crate::dnn::LayerFactory {
#[doc(hidden)] pub fn as_raw_LayerFactory(&self) -> *mut c_void { self.ptr }
}
impl LayerFactory {
pub fn unregister_layer(_type: &str) -> Result<()> {
string_arg!(_type);
unsafe { sys::cv_dnn_cv_dnn_LayerFactory_unregisterLayer_String_type(_type.as_ptr()) }.into_result()
}
}
#[allow(dead_code)]
pub struct LayerParams {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::LayerParams {
fn drop(&mut self) {
unsafe { sys::cv_delete_LayerParams(self.ptr) };
}
}
impl crate::dnn::LayerParams {
#[doc(hidden)] pub fn as_raw_LayerParams(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Dict for LayerParams {
#[doc(hidden)] fn as_raw_Dict(&self) -> *mut c_void { self.ptr }
}
#[allow(dead_code)]
pub struct MVNLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::MVNLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_MVNLayer(self.ptr) };
}
}
impl crate::dnn::MVNLayer {
#[doc(hidden)] pub fn as_raw_MVNLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for MVNLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for MVNLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl MVNLayer {
}
#[allow(dead_code)]
pub struct MaxUnpoolLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::MaxUnpoolLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_MaxUnpoolLayer(self.ptr) };
}
}
impl crate::dnn::MaxUnpoolLayer {
#[doc(hidden)] pub fn as_raw_MaxUnpoolLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for MaxUnpoolLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for MaxUnpoolLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl MaxUnpoolLayer {
}
impl Net {
pub fn new() -> Result<crate::dnn::Net> {
unsafe { sys::cv_dnn_cv_dnn_Net_Net() }.into_result()
}
pub fn read_from_model_optimizer(xml: &str, bin: &str) -> Result<crate::dnn::Net> {
string_arg!(xml);
string_arg!(bin);
unsafe { sys::cv_dnn_cv_dnn_Net_readFromModelOptimizer_String_xml_String_bin(xml.as_ptr(), bin.as_ptr()) }.into_result()
}
pub fn empty(self) -> Result<bool> {
unsafe { sys::cv_dnn_cv_dnn_Net_empty_const(self) }.into_result()
}
pub fn add_layer(self, name: &str, _type: &str, params: &crate::dnn::LayerParams) -> Result<i32> {
string_arg!(name);
string_arg!(_type);
unsafe { sys::cv_dnn_cv_dnn_Net_addLayer_String_name_String_type_LayerParams_params(self, name.as_ptr(), _type.as_ptr(), params.as_raw_LayerParams()) }.into_result()
}
pub fn add_layer_to_prev(self, name: &str, _type: &str, params: &crate::dnn::LayerParams) -> Result<i32> {
string_arg!(name);
string_arg!(_type);
unsafe { sys::cv_dnn_cv_dnn_Net_addLayerToPrev_String_name_String_type_LayerParams_params(self, name.as_ptr(), _type.as_ptr(), params.as_raw_LayerParams()) }.into_result()
}
pub fn get_layer_id(self, layer: &str) -> Result<i32> {
string_arg!(layer);
unsafe { sys::cv_dnn_cv_dnn_Net_getLayerId_String_layer(self, layer.as_ptr()) }.into_result()
}
pub fn get_layer_names(self) -> Result<types::VectorOfString> {
unsafe { sys::cv_dnn_cv_dnn_Net_getLayerNames_const(self) }.into_result().map(|x| types::VectorOfString { ptr: x })
}
pub fn connect(self, out_pin: &str, inp_pin: &str) -> Result<()> {
string_arg!(mut out_pin);
string_arg!(mut inp_pin);
unsafe { sys::cv_dnn_cv_dnn_Net_connect_String_outPin_String_inpPin(self, out_pin.as_ptr() as _, inp_pin.as_ptr() as _) }.into_result()
}
pub fn connect_1(self, out_layer_id: i32, out_num: i32, inp_layer_id: i32, inp_num: i32) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_connect_int_outLayerId_int_outNum_int_inpLayerId_int_inpNum(self, out_layer_id, out_num, inp_layer_id, inp_num) }.into_result()
}
pub fn set_inputs_names(self, input_blob_names: &types::VectorOfString) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_setInputsNames_VectorOfString_inputBlobNames(self, input_blob_names.as_raw_VectorOfString()) }.into_result()
}
pub fn forward(self, output_name: &str) -> Result<core::Mat> {
string_arg!(output_name);
unsafe { sys::cv_dnn_cv_dnn_Net_forward_String_outputName(self, output_name.as_ptr()) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn forward_1(self, output_blobs: &mut types::VectorOfMat, output_name: &str) -> Result<()> {
string_arg!(output_name);
unsafe { sys::cv_dnn_cv_dnn_Net_forward_VectorOfMat_outputBlobs_String_outputName(self, output_blobs.as_raw_VectorOfMat(), output_name.as_ptr()) }.into_result()
}
pub fn forward_2(self, output_blobs: &mut types::VectorOfMat, out_blob_names: &types::VectorOfString) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_forward_VectorOfMat_outputBlobs_VectorOfString_outBlobNames(self, output_blobs.as_raw_VectorOfMat(), out_blob_names.as_raw_VectorOfString()) }.into_result()
}
pub fn forward_3(self, output_blobs: &types::VectorOfVectorOfMat, out_blob_names: &types::VectorOfString) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_forward_VectorOfVectorOfMat_outputBlobs_VectorOfString_outBlobNames(self, output_blobs.as_raw_VectorOfVectorOfMat(), out_blob_names.as_raw_VectorOfString()) }.into_result()
}
pub fn set_halide_scheduler(self, scheduler: &str) -> Result<()> {
string_arg!(scheduler);
unsafe { sys::cv_dnn_cv_dnn_Net_setHalideScheduler_String_scheduler(self, scheduler.as_ptr()) }.into_result()
}
pub fn set_preferable_backend(self, backend_id: i32) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_setPreferableBackend_int_backendId(self, backend_id) }.into_result()
}
pub fn set_preferable_target(self, target_id: i32) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_setPreferableTarget_int_targetId(self, target_id) }.into_result()
}
pub fn set_input(self, blob: &core::Mat, name: &str, scalefactor: f64, mean: core::Scalar) -> Result<()> {
string_arg!(name);
unsafe { sys::cv_dnn_cv_dnn_Net_setInput_Mat_blob_String_name_double_scalefactor_Scalar_mean(self, blob.as_raw_Mat(), name.as_ptr(), scalefactor, mean) }.into_result()
}
pub fn set_param(self, layer: &crate::dnn::DictValue, num_param: i32, blob: &core::Mat) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_setParam_DictValue_layer_int_numParam_Mat_blob(self, layer.as_raw_DictValue(), num_param, blob.as_raw_Mat()) }.into_result()
}
pub fn get_param(self, layer: &crate::dnn::DictValue, num_param: i32) -> Result<core::Mat> {
unsafe { sys::cv_dnn_cv_dnn_Net_getParam_DictValue_layer_int_numParam(self, layer.as_raw_DictValue(), num_param) }.into_result().map(|x| core::Mat { ptr: x })
}
pub fn get_unconnected_out_layers(self) -> Result<types::VectorOfint> {
unsafe { sys::cv_dnn_cv_dnn_Net_getUnconnectedOutLayers_const(self) }.into_result().map(|x| types::VectorOfint { ptr: x })
}
pub fn get_unconnected_out_layers_names(self) -> Result<types::VectorOfString> {
unsafe { sys::cv_dnn_cv_dnn_Net_getUnconnectedOutLayersNames_const(self) }.into_result().map(|x| types::VectorOfString { ptr: x })
}
pub fn get_layers_shapes(self, net_input_shapes: &types::VectorOfVectorOfint, layers_ids: &types::VectorOfint, in_layers_shapes: &types::VectorOfVectorOfVectorOfint, out_layers_shapes: &types::VectorOfVectorOfVectorOfint) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_getLayersShapes_const_VectorOfVectorOfint_netInputShapes_VectorOfint_layersIds_VectorOfVectorOfVectorOfint_inLayersShapes_VectorOfVectorOfVectorOfint_outLayersShapes(self, net_input_shapes.as_raw_VectorOfVectorOfint(), layers_ids.as_raw_VectorOfint(), in_layers_shapes.as_raw_VectorOfVectorOfVectorOfint(), out_layers_shapes.as_raw_VectorOfVectorOfVectorOfint()) }.into_result()
}
pub fn get_layer_shapes(self, net_input_shapes: &types::VectorOfVectorOfint, layer_id: i32, in_layer_shapes: &types::VectorOfVectorOfint, out_layer_shapes: &types::VectorOfVectorOfint) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_getLayerShapes_const_VectorOfVectorOfint_netInputShapes_int_layerId_VectorOfVectorOfint_inLayerShapes_VectorOfVectorOfint_outLayerShapes(self, net_input_shapes.as_raw_VectorOfVectorOfint(), layer_id, in_layer_shapes.as_raw_VectorOfVectorOfint(), out_layer_shapes.as_raw_VectorOfVectorOfint()) }.into_result()
}
pub fn get_flops(self, net_input_shapes: &types::VectorOfVectorOfint) -> Result<i64> {
unsafe { sys::cv_dnn_cv_dnn_Net_getFLOPS_const_VectorOfVectorOfint_netInputShapes(self, net_input_shapes.as_raw_VectorOfVectorOfint()) }.into_result()
}
pub fn get_flops_1(self, layer_id: i32, net_input_shapes: &types::VectorOfVectorOfint) -> Result<i64> {
unsafe { sys::cv_dnn_cv_dnn_Net_getFLOPS_const_int_layerId_VectorOfVectorOfint_netInputShapes(self, layer_id, net_input_shapes.as_raw_VectorOfVectorOfint()) }.into_result()
}
pub fn get_layer_types(self, layers_types: &types::VectorOfString) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_getLayerTypes_const_VectorOfString_layersTypes(self, layers_types.as_raw_VectorOfString()) }.into_result()
}
pub fn get_layers_count(self, layer_type: &str) -> Result<i32> {
string_arg!(layer_type);
unsafe { sys::cv_dnn_cv_dnn_Net_getLayersCount_const_String_layerType(self, layer_type.as_ptr()) }.into_result()
}
pub fn get_memory_consumption(self, net_input_shapes: &types::VectorOfVectorOfint, weights: size_t, blobs: size_t) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_getMemoryConsumption_const_VectorOfVectorOfint_netInputShapes_size_t_weights_size_t_blobs(self, net_input_shapes.as_raw_VectorOfVectorOfint(), weights, blobs) }.into_result()
}
pub fn get_memory_consumption_1(self, layer_id: i32, net_input_shapes: &types::VectorOfVectorOfint, weights: size_t, blobs: size_t) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_getMemoryConsumption_const_int_layerId_VectorOfVectorOfint_netInputShapes_size_t_weights_size_t_blobs(self, layer_id, net_input_shapes.as_raw_VectorOfVectorOfint(), weights, blobs) }.into_result()
}
pub fn get_memory_consumption_2(self, net_input_shapes: &types::VectorOfVectorOfint, layer_ids: &types::VectorOfint, weights: &types::VectorOfsize_t, blobs: &types::VectorOfsize_t) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_getMemoryConsumption_const_VectorOfVectorOfint_netInputShapes_VectorOfint_layerIds_VectorOfsize_t_weights_VectorOfsize_t_blobs(self, net_input_shapes.as_raw_VectorOfVectorOfint(), layer_ids.as_raw_VectorOfint(), weights.as_raw_VectorOfsize_t(), blobs.as_raw_VectorOfsize_t()) }.into_result()
}
pub fn enable_fusion(self, fusion: bool) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_Net_enableFusion_bool_fusion(self, fusion) }.into_result()
}
pub fn get_perf_profile(self, timings: &types::VectorOfdouble) -> Result<i64> {
unsafe { sys::cv_dnn_cv_dnn_Net_getPerfProfile_VectorOfdouble_timings(self, timings.as_raw_VectorOfdouble()) }.into_result()
}
}
#[allow(dead_code)]
pub struct NormalizeBBoxLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::NormalizeBBoxLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_NormalizeBBoxLayer(self.ptr) };
}
}
impl crate::dnn::NormalizeBBoxLayer {
#[doc(hidden)] pub fn as_raw_NormalizeBBoxLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for NormalizeBBoxLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for NormalizeBBoxLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl NormalizeBBoxLayer {
}
#[allow(dead_code)]
pub struct PaddingLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::PaddingLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_PaddingLayer(self.ptr) };
}
}
impl crate::dnn::PaddingLayer {
#[doc(hidden)] pub fn as_raw_PaddingLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for PaddingLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for PaddingLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl PaddingLayer {
}
#[allow(dead_code)]
pub struct PermuteLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::PermuteLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_PermuteLayer(self.ptr) };
}
}
impl crate::dnn::PermuteLayer {
#[doc(hidden)] pub fn as_raw_PermuteLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for PermuteLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for PermuteLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl PermuteLayer {
}
#[allow(dead_code)]
pub struct PoolingLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::PoolingLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_PoolingLayer(self.ptr) };
}
}
impl crate::dnn::PoolingLayer {
#[doc(hidden)] pub fn as_raw_PoolingLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for PoolingLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for PoolingLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl PoolingLayer {
}
#[allow(dead_code)]
pub struct PowerLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::PowerLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_PowerLayer(self.ptr) };
}
}
impl crate::dnn::PowerLayer {
#[doc(hidden)] pub fn as_raw_PowerLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for PowerLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for PowerLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::ActivationLayer for PowerLayer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void { self.ptr }
}
impl PowerLayer {
}
#[allow(dead_code)]
pub struct PriorBoxLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::PriorBoxLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_PriorBoxLayer(self.ptr) };
}
}
impl crate::dnn::PriorBoxLayer {
#[doc(hidden)] pub fn as_raw_PriorBoxLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for PriorBoxLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for PriorBoxLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl PriorBoxLayer {
}
#[allow(dead_code)]
pub struct ProposalLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ProposalLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ProposalLayer(self.ptr) };
}
}
impl crate::dnn::ProposalLayer {
#[doc(hidden)] pub fn as_raw_ProposalLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ProposalLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ProposalLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl ProposalLayer {
}
pub trait RNNLayer : crate::dnn::Layer {
#[doc(hidden)] fn as_raw_RNNLayer(&self) -> *mut c_void;
fn set_weights(&mut self, wxh: &core::Mat, bh: &core::Mat, whh: &core::Mat, who: &core::Mat, bo: &core::Mat) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_RNNLayer_setWeights_Mat_Wxh_Mat_bh_Mat_Whh_Mat_Who_Mat_bo(self.as_raw_RNNLayer(), wxh.as_raw_Mat(), bh.as_raw_Mat(), whh.as_raw_Mat(), who.as_raw_Mat(), bo.as_raw_Mat()) }.into_result()
}
fn set_produce_hidden_output(&mut self, produce: bool) -> Result<()> {
unsafe { sys::cv_dnn_cv_dnn_RNNLayer_setProduceHiddenOutput_bool_produce(self.as_raw_RNNLayer(), produce) }.into_result()
}
}
impl<'a> RNNLayer + 'a {
}
#[allow(dead_code)]
pub struct ReLU6Layer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ReLU6Layer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ReLU6Layer(self.ptr) };
}
}
impl crate::dnn::ReLU6Layer {
#[doc(hidden)] pub fn as_raw_ReLU6Layer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ReLU6Layer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ReLU6Layer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::ActivationLayer for ReLU6Layer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void { self.ptr }
}
impl ReLU6Layer {
}
#[allow(dead_code)]
pub struct ReLULayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ReLULayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ReLULayer(self.ptr) };
}
}
impl crate::dnn::ReLULayer {
#[doc(hidden)] pub fn as_raw_ReLULayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ReLULayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ReLULayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::ActivationLayer for ReLULayer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void { self.ptr }
}
impl ReLULayer {
}
#[allow(dead_code)]
pub struct RegionLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::RegionLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_RegionLayer(self.ptr) };
}
}
impl crate::dnn::RegionLayer {
#[doc(hidden)] pub fn as_raw_RegionLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for RegionLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for RegionLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl RegionLayer {
}
#[allow(dead_code)]
pub struct ReorgLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ReorgLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ReorgLayer(self.ptr) };
}
}
impl crate::dnn::ReorgLayer {
#[doc(hidden)] pub fn as_raw_ReorgLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ReorgLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ReorgLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl ReorgLayer {
}
#[allow(dead_code)]
pub struct ReshapeLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ReshapeLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ReshapeLayer(self.ptr) };
}
}
impl crate::dnn::ReshapeLayer {
#[doc(hidden)] pub fn as_raw_ReshapeLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ReshapeLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ReshapeLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl ReshapeLayer {
}
#[allow(dead_code)]
pub struct ResizeLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ResizeLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ResizeLayer(self.ptr) };
}
}
impl crate::dnn::ResizeLayer {
#[doc(hidden)] pub fn as_raw_ResizeLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ResizeLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ResizeLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl ResizeLayer {
}
#[allow(dead_code)]
pub struct ScaleLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ScaleLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ScaleLayer(self.ptr) };
}
}
impl crate::dnn::ScaleLayer {
#[doc(hidden)] pub fn as_raw_ScaleLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ScaleLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ScaleLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl ScaleLayer {
}
#[allow(dead_code)]
pub struct ShiftLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ShiftLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ShiftLayer(self.ptr) };
}
}
impl crate::dnn::ShiftLayer {
#[doc(hidden)] pub fn as_raw_ShiftLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ShiftLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ShiftLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl ShiftLayer {
}
#[allow(dead_code)]
pub struct ShuffleChannelLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::ShuffleChannelLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_ShuffleChannelLayer(self.ptr) };
}
}
impl crate::dnn::ShuffleChannelLayer {
#[doc(hidden)] pub fn as_raw_ShuffleChannelLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for ShuffleChannelLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for ShuffleChannelLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl ShuffleChannelLayer {
}
#[allow(dead_code)]
pub struct SigmoidLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::SigmoidLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_SigmoidLayer(self.ptr) };
}
}
impl crate::dnn::SigmoidLayer {
#[doc(hidden)] pub fn as_raw_SigmoidLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for SigmoidLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for SigmoidLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::ActivationLayer for SigmoidLayer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void { self.ptr }
}
impl SigmoidLayer {
}
#[allow(dead_code)]
pub struct SliceLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::SliceLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_SliceLayer(self.ptr) };
}
}
impl crate::dnn::SliceLayer {
#[doc(hidden)] pub fn as_raw_SliceLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for SliceLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for SliceLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl SliceLayer {
}
#[allow(dead_code)]
pub struct SoftmaxLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::SoftmaxLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_SoftmaxLayer(self.ptr) };
}
}
impl crate::dnn::SoftmaxLayer {
#[doc(hidden)] pub fn as_raw_SoftmaxLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for SoftmaxLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for SoftmaxLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl SoftmaxLayer {
}
#[allow(dead_code)]
pub struct SplitLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::SplitLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_SplitLayer(self.ptr) };
}
}
impl crate::dnn::SplitLayer {
#[doc(hidden)] pub fn as_raw_SplitLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for SplitLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for SplitLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl SplitLayer {
}
#[allow(dead_code)]
pub struct TanHLayer {
#[doc(hidden)] pub ptr: *mut c_void
}
impl Drop for crate::dnn::TanHLayer {
fn drop(&mut self) {
unsafe { sys::cv_delete_TanHLayer(self.ptr) };
}
}
impl crate::dnn::TanHLayer {
#[doc(hidden)] pub fn as_raw_TanHLayer(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::Layer for TanHLayer {
#[doc(hidden)] fn as_raw_Layer(&self) -> *mut c_void { self.ptr }
}
impl core::Algorithm for TanHLayer {
#[doc(hidden)] fn as_raw_Algorithm(&self) -> *mut c_void { self.ptr }
}
impl crate::dnn::ActivationLayer for TanHLayer {
#[doc(hidden)] fn as_raw_ActivationLayer(&self) -> *mut c_void { self.ptr }
}
impl TanHLayer {
}