Struct opencv::core::_OutputArray
source · pub struct _OutputArray { /* private fields */ }
Expand description
This type is very similar to InputArray except that it is used for input/output and output function parameters.
Just like with InputArray, OpenCV users should not care about OutputArray, they just pass Mat
,
vector<T>
etc. to the functions. The same limitation as for InputArray
: Do not explicitly
create OutputArray instances applies here too.
If you want to make your function polymorphic (i.e. accept different arrays as output parameters), it is also not very difficult. Take the sample above as the reference. Note that _OutputArray::create() needs to be called before _OutputArray::getMat(). This way you guarantee that the output array is properly allocated.
Optional output parameters. If you do not need certain output array to be computed and returned to you, pass cv::noArray(), just like you would in the case of optional input array. At the implementation level, use _OutputArray::needed() to check if certain output array needs to be computed or not.
There are several synonyms for OutputArray that are used to assist automatic Python/Java/… wrapper generators:
typedef OutputArray OutputArrayOfArrays;
typedef OutputArray InputOutputArray;
typedef OutputArray InputOutputArrayOfArrays;
Implementations§
source§impl _OutputArray
impl _OutputArray
sourcepub fn default() -> Result<_OutputArray>
pub fn default() -> Result<_OutputArray>
/////////////////////////////////////////////////////////////////////////////////////
pub unsafe fn new(_flags: i32, _obj: *mut c_void) -> Result<_OutputArray>
pub fn from_mat_mut( m: &mut impl MatTrait ) -> Result<BoxedRefMut<'_, _OutputArray>>
pub fn from_mat_vec_mut( vec: &mut Vector<Mat> ) -> Result<BoxedRefMut<'_, _OutputArray>>
pub fn from_gpumat_mut( d_mat: &mut impl GpuMatTrait ) -> Result<BoxedRefMut<'_, _OutputArray>>
pub fn from_gpumat_vec_mut( d_mat: &mut Vector<GpuMat> ) -> Result<BoxedRefMut<'_, _OutputArray>>
pub fn from_opengl_mut( buf: &mut impl BufferTrait ) -> Result<BoxedRefMut<'_, _OutputArray>>
pub fn from_hostmem_mut( cuda_mem: &mut impl HostMemTrait ) -> Result<BoxedRefMut<'_, _OutputArray>>
pub fn from_umat_mut( m: &mut impl UMatTrait ) -> Result<BoxedRefMut<'_, _OutputArray>>
pub fn from_umat_vec_mut( vec: &mut Vector<UMat> ) -> Result<BoxedRefMut<'_, _OutputArray>>
pub fn from_mat(m: &impl MatTraitConst) -> Result<BoxedRef<'_, _OutputArray>>
pub fn from_mat_vec(vec: &Vector<Mat>) -> Result<BoxedRef<'_, _OutputArray>>
pub fn from_gpumat( d_mat: &impl GpuMatTraitConst ) -> Result<BoxedRef<'_, _OutputArray>>
pub fn from_opengl( buf: &impl BufferTraitConst ) -> Result<BoxedRef<'_, _OutputArray>>
pub fn from_hostmem( cuda_mem: &impl HostMemTraitConst ) -> Result<BoxedRef<'_, _OutputArray>>
pub fn from_umat(m: &impl UMatTraitConst) -> Result<BoxedRef<'_, _OutputArray>>
pub fn from_umat_vec(vec: &Vector<UMat>) -> Result<BoxedRef<'_, _OutputArray>>
Trait Implementations§
source§impl Boxed for _OutputArray
impl Boxed for _OutputArray
source§unsafe fn from_raw(
ptr: <_OutputArray as OpenCVFromExtern>::ExternReceive
) -> Self
unsafe fn from_raw( ptr: <_OutputArray as OpenCVFromExtern>::ExternReceive ) -> Self
source§fn into_raw(self) -> <_OutputArray as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw(self) -> <_OutputArray as OpenCVTypeExternContainer>::ExternSendMut
source§fn as_raw(&self) -> <_OutputArray as OpenCVTypeExternContainer>::ExternSend
fn as_raw(&self) -> <_OutputArray as OpenCVTypeExternContainer>::ExternSend
source§fn as_raw_mut(
&mut self
) -> <_OutputArray as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut( &mut self ) -> <_OutputArray as OpenCVTypeExternContainer>::ExternSendMut
source§impl Debug for _OutputArray
impl Debug for _OutputArray
source§impl Drop for _OutputArray
impl Drop for _OutputArray
source§impl From<_InputOutputArray> for _OutputArray
impl From<_InputOutputArray> for _OutputArray
source§fn from(s: _InputOutputArray) -> Self
fn from(s: _InputOutputArray) -> Self
source§impl From<_OutputArray> for _InputArray
impl From<_OutputArray> for _InputArray
source§fn from(s: _OutputArray) -> Self
fn from(s: _OutputArray) -> Self
source§impl ToInputArray for _OutputArray
impl ToInputArray for _OutputArray
fn input_array(&self) -> Result<BoxedRef<'_, _InputArray>>
source§impl ToOutputArray for _OutputArray
impl ToOutputArray for _OutputArray
fn output_array(&mut self) -> Result<BoxedRefMut<'_, _OutputArray>>
source§impl _InputArrayTrait for _OutputArray
impl _InputArrayTrait for _OutputArray
fn as_raw_mut__InputArray(&mut self) -> *mut c_void
source§impl _InputArrayTraitConst for _OutputArray
impl _InputArrayTraitConst for _OutputArray
fn as_raw__InputArray(&self) -> *const c_void
fn get_mat_vector(&self, mv: &mut Vector<Mat>) -> Result<()>
fn get_umat_vector(&self, umv: &mut Vector<UMat>) -> Result<()>
fn get_gpu_mat_vector(&self, gpumv: &mut Vector<GpuMat>) -> Result<()>
fn get_gpu_mat(&self) -> Result<GpuMat>
fn get_o_gl_buffer(&self) -> Result<Buffer>
fn get_flags(&self) -> Result<i32>
fn get_obj(&self) -> Result<*mut c_void>
fn get_sz(&self) -> Result<Size>
fn kind(&self) -> Result<_InputArray_KindFlag>
fn same_size(&self, arr: &impl ToInputArray) -> Result<bool>
fn empty(&self) -> Result<bool>
fn copy_to(&self, arr: &mut impl ToOutputArray) -> Result<()>
fn copy_to_masked( &self, arr: &mut impl ToOutputArray, mask: &impl ToInputArray ) -> Result<()>
fn is_mat(&self) -> Result<bool>
fn is_umat(&self) -> Result<bool>
fn is_mat_vector(&self) -> Result<bool>
fn is_umat_vector(&self) -> Result<bool>
fn is_matx(&self) -> Result<bool>
fn is_vector(&self) -> Result<bool>
fn is_gpu_mat(&self) -> Result<bool>
fn is_gpu_mat_vector(&self) -> Result<bool>
source§impl _OutputArrayTrait for _OutputArray
impl _OutputArrayTrait for _OutputArray
fn as_raw_mut__OutputArray(&mut self) -> *mut c_void
source§impl _OutputArrayTraitConst for _OutputArray
impl _OutputArrayTraitConst for _OutputArray
fn as_raw__OutputArray(&self) -> *const c_void
fn fixed_size(&self) -> Result<bool>
fn fixed_type(&self) -> Result<bool>
fn needed(&self) -> Result<bool>
fn get_gpu_mat_ref(&self) -> Result<GpuMat>
fn get_gpu_mat_vec_ref(&self) -> Result<Vector<GpuMat>>
fn get_o_gl_buffer_ref(&self) -> Result<Buffer>
fn get_host_mem_ref(&self) -> Result<HostMem>
source§fn create_size(
&self,
sz: Size,
typ: i32,
i: i32,
allow_transposed: bool,
fixed_depth_mask: _OutputArray_DepthMask
) -> Result<()>
fn create_size( &self, sz: Size, typ: i32, i: i32, allow_transposed: bool, fixed_depth_mask: _OutputArray_DepthMask ) -> Result<()>
source§fn create(
&self,
rows: i32,
cols: i32,
typ: i32,
i: i32,
allow_transposed: bool,
fixed_depth_mask: _OutputArray_DepthMask
) -> Result<()>
fn create( &self, rows: i32, cols: i32, typ: i32, i: i32, allow_transposed: bool, fixed_depth_mask: _OutputArray_DepthMask ) -> Result<()>
source§fn create_nd(
&self,
size: &[i32],
typ: i32,
i: i32,
allow_transposed: bool,
fixed_depth_mask: _OutputArray_DepthMask
) -> Result<()>
fn create_nd( &self, size: &[i32], typ: i32, i: i32, allow_transposed: bool, fixed_depth_mask: _OutputArray_DepthMask ) -> Result<()>
unsafe fn create_same_size( &self, arr: &impl ToInputArray, mtype: i32 ) -> Result<()>
fn release(&self) -> Result<()>
fn clear(&self) -> Result<()>
source§fn set_to(
&self,
value: &impl ToInputArray,
mask: &impl ToInputArray
) -> Result<()>
fn set_to( &self, value: &impl ToInputArray, mask: &impl ToInputArray ) -> Result<()>
source§fn set_to_def(&self, value: &impl ToInputArray) -> Result<()>
fn set_to_def(&self, value: &impl ToInputArray) -> Result<()>
fn assign_umat(&self, u: &impl UMatTraitConst) -> Result<()>
fn assign_mat(&self, m: &impl MatTraitConst) -> Result<()>
fn assign_umat_vec(&self, v: &Vector<UMat>) -> Result<()>
fn assign_mat_vec(&self, v: &Vector<Mat>) -> Result<()>
fn move_umat(&self, u: &mut impl UMatTrait) -> Result<()>
fn move_mat(&self, m: &mut impl MatTrait) -> Result<()>
impl Send for _OutputArray
Auto Trait Implementations§
impl Freeze for _OutputArray
impl RefUnwindSafe for _OutputArray
impl !Sync for _OutputArray
impl Unpin for _OutputArray
impl UnwindSafe for _OutputArray
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
source§unsafe fn modify_inplace<Res>(
&mut self,
f: impl FnOnce(&Mat, &mut Mat) -> Res
) -> Res
unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res ) -> Res
Mat
or another similar object. By passing
a mutable reference to the Mat
to this function your closure will get called with the read reference and a write references
to the same Mat
. This is of course unsafe as it breaks the Rust aliasing rules, but it might be useful for some performance
sensitive operations. One example of an OpenCV function that allows such in-place modification is imgproc::threshold
. Read more