use std::os::raw::{c_char, c_void};
use libc::size_t;
use crate::{Error, Result, core, sys, types};
pub const Stitcher_ERR_CAMERA_PARAMS_ADJUST_FAIL: i32 = 3;
pub const Stitcher_ERR_HOMOGRAPHY_EST_FAIL: i32 = 2;
pub const Stitcher_ERR_NEED_MORE_IMGS: i32 = 1;
pub const Stitcher_OK: i32 = 0;
pub const Stitcher_ORIG_RESOL: i32 = -1;
pub const Stitcher_PANORAMA: i32 = 0;
pub const Stitcher_SCANS: i32 = 1;
pub fn create_stitcher_scans(try_use_gpu: bool) -> Result<types::PtrOfStitcher> {
unsafe { sys::cv_createStitcherScans_bool(try_use_gpu) }.into_result().map(|x| types::PtrOfStitcher { ptr: x })
}
pub fn create_stitcher(try_use_gpu: bool) -> Result<types::PtrOfStitcher> {
unsafe { sys::cv_createStitcher_bool(try_use_gpu) }.into_result().map(|x| types::PtrOfStitcher { ptr: x })
}
#[allow(dead_code)]
pub struct AffineWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::AffineWarper {
fn drop(&mut self) {
unsafe { sys::cv_AffineWarper_delete(self.ptr) };
}
}
impl crate::stitching::AffineWarper {
pub fn as_raw_AffineWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
AffineWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for AffineWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl AffineWarper {
}
#[allow(dead_code)]
pub struct CompressedRectilinearPortraitWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::CompressedRectilinearPortraitWarper {
fn drop(&mut self) {
unsafe { sys::cv_CompressedRectilinearPortraitWarper_delete(self.ptr) };
}
}
impl crate::stitching::CompressedRectilinearPortraitWarper {
pub fn as_raw_CompressedRectilinearPortraitWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
CompressedRectilinearPortraitWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for CompressedRectilinearPortraitWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl CompressedRectilinearPortraitWarper {
pub fn new(a: f32, b: f32) -> Result<crate::stitching::CompressedRectilinearPortraitWarper> {
unsafe { sys::cv_CompressedRectilinearPortraitWarper_CompressedRectilinearPortraitWarper_float_float(a, b) }.into_result().map(|x| crate::stitching::CompressedRectilinearPortraitWarper { ptr: x })
}
}
#[allow(dead_code)]
pub struct CompressedRectilinearWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::CompressedRectilinearWarper {
fn drop(&mut self) {
unsafe { sys::cv_CompressedRectilinearWarper_delete(self.ptr) };
}
}
impl crate::stitching::CompressedRectilinearWarper {
pub fn as_raw_CompressedRectilinearWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
CompressedRectilinearWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for CompressedRectilinearWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl CompressedRectilinearWarper {
pub fn new(a: f32, b: f32) -> Result<crate::stitching::CompressedRectilinearWarper> {
unsafe { sys::cv_CompressedRectilinearWarper_CompressedRectilinearWarper_float_float(a, b) }.into_result().map(|x| crate::stitching::CompressedRectilinearWarper { ptr: x })
}
}
#[allow(dead_code)]
pub struct CylindricalWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::CylindricalWarper {
fn drop(&mut self) {
unsafe { sys::cv_CylindricalWarper_delete(self.ptr) };
}
}
impl crate::stitching::CylindricalWarper {
pub fn as_raw_CylindricalWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
CylindricalWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for CylindricalWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl CylindricalWarper {
}
#[allow(dead_code)]
pub struct FisheyeWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::FisheyeWarper {
fn drop(&mut self) {
unsafe { sys::cv_FisheyeWarper_delete(self.ptr) };
}
}
impl crate::stitching::FisheyeWarper {
pub fn as_raw_FisheyeWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
FisheyeWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for FisheyeWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl FisheyeWarper {
}
#[allow(dead_code)]
pub struct MercatorWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::MercatorWarper {
fn drop(&mut self) {
unsafe { sys::cv_MercatorWarper_delete(self.ptr) };
}
}
impl crate::stitching::MercatorWarper {
pub fn as_raw_MercatorWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
MercatorWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for MercatorWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl MercatorWarper {
}
#[allow(dead_code)]
pub struct PaniniPortraitWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::PaniniPortraitWarper {
fn drop(&mut self) {
unsafe { sys::cv_PaniniPortraitWarper_delete(self.ptr) };
}
}
impl crate::stitching::PaniniPortraitWarper {
pub fn as_raw_PaniniPortraitWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
PaniniPortraitWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for PaniniPortraitWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl PaniniPortraitWarper {
pub fn new(a: f32, b: f32) -> Result<crate::stitching::PaniniPortraitWarper> {
unsafe { sys::cv_PaniniPortraitWarper_PaniniPortraitWarper_float_float(a, b) }.into_result().map(|x| crate::stitching::PaniniPortraitWarper { ptr: x })
}
}
#[allow(dead_code)]
pub struct PaniniWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::PaniniWarper {
fn drop(&mut self) {
unsafe { sys::cv_PaniniWarper_delete(self.ptr) };
}
}
impl crate::stitching::PaniniWarper {
pub fn as_raw_PaniniWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
PaniniWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for PaniniWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl PaniniWarper {
pub fn new(a: f32, b: f32) -> Result<crate::stitching::PaniniWarper> {
unsafe { sys::cv_PaniniWarper_PaniniWarper_float_float(a, b) }.into_result().map(|x| crate::stitching::PaniniWarper { ptr: x })
}
}
#[allow(dead_code)]
pub struct PlaneWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::PlaneWarper {
fn drop(&mut self) {
unsafe { sys::cv_PlaneWarper_delete(self.ptr) };
}
}
impl crate::stitching::PlaneWarper {
pub fn as_raw_PlaneWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
PlaneWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for PlaneWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl PlaneWarper {
}
#[allow(dead_code)]
pub struct SphericalWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::SphericalWarper {
fn drop(&mut self) {
unsafe { sys::cv_SphericalWarper_delete(self.ptr) };
}
}
impl crate::stitching::SphericalWarper {
pub fn as_raw_SphericalWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
SphericalWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for SphericalWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl SphericalWarper {
}
#[allow(dead_code)]
pub struct StereographicWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::StereographicWarper {
fn drop(&mut self) {
unsafe { sys::cv_StereographicWarper_delete(self.ptr) };
}
}
impl crate::stitching::StereographicWarper {
pub fn as_raw_StereographicWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
StereographicWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for StereographicWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl StereographicWarper {
}
#[allow(dead_code)]
pub struct Stitcher {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::Stitcher {
fn drop(&mut self) {
unsafe { sys::cv_Stitcher_delete(self.ptr) };
}
}
impl crate::stitching::Stitcher {
pub fn as_raw_Stitcher(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
Stitcher {
ptr
}
}
}
impl Stitcher {
pub fn create_default(try_use_gpu: bool) -> Result<crate::stitching::Stitcher> {
unsafe { sys::cv_Stitcher_createDefault_bool(try_use_gpu) }.into_result().map(|x| crate::stitching::Stitcher { ptr: x })
}
pub fn registration_resol(&self) -> Result<f64> {
unsafe { sys::cv_Stitcher_registrationResol_const(self.as_raw_Stitcher()) }.into_result()
}
pub fn set_registration_resol(&mut self, resol_mpx: f64) -> Result<()> {
unsafe { sys::cv_Stitcher_setRegistrationResol_double(self.as_raw_Stitcher(), resol_mpx) }.into_result()
}
pub fn seam_estimation_resol(&self) -> Result<f64> {
unsafe { sys::cv_Stitcher_seamEstimationResol_const(self.as_raw_Stitcher()) }.into_result()
}
pub fn set_seam_estimation_resol(&mut self, resol_mpx: f64) -> Result<()> {
unsafe { sys::cv_Stitcher_setSeamEstimationResol_double(self.as_raw_Stitcher(), resol_mpx) }.into_result()
}
pub fn compositing_resol(&self) -> Result<f64> {
unsafe { sys::cv_Stitcher_compositingResol_const(self.as_raw_Stitcher()) }.into_result()
}
pub fn set_compositing_resol(&mut self, resol_mpx: f64) -> Result<()> {
unsafe { sys::cv_Stitcher_setCompositingResol_double(self.as_raw_Stitcher(), resol_mpx) }.into_result()
}
pub fn pano_confidence_thresh(&self) -> Result<f64> {
unsafe { sys::cv_Stitcher_panoConfidenceThresh_const(self.as_raw_Stitcher()) }.into_result()
}
pub fn set_pano_confidence_thresh(&mut self, conf_thresh: f64) -> Result<()> {
unsafe { sys::cv_Stitcher_setPanoConfidenceThresh_double(self.as_raw_Stitcher(), conf_thresh) }.into_result()
}
pub fn wave_correction(&self) -> Result<bool> {
unsafe { sys::cv_Stitcher_waveCorrection_const(self.as_raw_Stitcher()) }.into_result()
}
pub fn set_wave_correction(&mut self, flag: bool) -> Result<()> {
unsafe { sys::cv_Stitcher_setWaveCorrection_bool(self.as_raw_Stitcher(), flag) }.into_result()
}
pub fn component(&self) -> Result<types::VectorOfint> {
unsafe { sys::cv_Stitcher_component_const(self.as_raw_Stitcher()) }.into_result().map(|x| types::VectorOfint { ptr: x })
}
pub fn work_scale(&self) -> Result<f64> {
unsafe { sys::cv_Stitcher_workScale_const(self.as_raw_Stitcher()) }.into_result()
}
}
#[allow(dead_code)]
pub struct TransverseMercatorWarper {
#[doc(hidden)] pub(crate) ptr: *mut c_void
}
impl Drop for crate::stitching::TransverseMercatorWarper {
fn drop(&mut self) {
unsafe { sys::cv_TransverseMercatorWarper_delete(self.ptr) };
}
}
impl crate::stitching::TransverseMercatorWarper {
pub fn as_raw_TransverseMercatorWarper(&self) -> *mut c_void { self.ptr }
pub unsafe fn from_raw_ptr(ptr: *mut c_void) -> Self {
TransverseMercatorWarper {
ptr
}
}
}
impl crate::stitching::WarperCreator for TransverseMercatorWarper {
fn as_raw_WarperCreator(&self) -> *mut c_void { self.ptr }
}
impl TransverseMercatorWarper {
}
pub trait WarperCreator {
#[doc(hidden)] fn as_raw_WarperCreator(&self) -> *mut c_void;
}
impl<'a> WarperCreator + 'a {
}