pub struct GFrame { /* private fields */ }
Expand description
\addtogroup gapi_data_objects /
GFrame class represents an image or media frame in the graph.
GFrame doesn’t store any data itself, instead it describes a functional relationship between operations consuming and producing GFrame objects.
GFrame is introduced to handle various media formats (e.g., NV12 or
I420) under the same type. Various image formats may differ in the
number of planes (e.g. two for NV12, three for I420) and the pixel
layout inside. GFrame type allows to handle these media formats in
the graph uniformly – the graph structure will not change if the
media format changes, e.g. a different camera or decoder is used
with the same graph. G-API provides a number of operations which
operate directly on GFrame, like infer<>()
or
renderFrame(); these operations are expected to handle different
media formats inside. There is also a number of accessor
operations like BGR(), Y(), UV() – these operations provide
access to frame’s data in the familiar cv::GMat form, which can be
used with the majority of the existing G-API operations. These
accessor functions may perform color space conversion on the fly if
the image format of the GFrame they are applied to differs from the
operation’s semantic (e.g. the BGR() accessor is called on an NV12
image frame).
GFrame is a virtual counterpart of cv::MediaFrame.
§See also
cv::MediaFrame, cv::GFrameDesc, BGR(), Y(), UV(), infer<>().
Implementations§
Trait Implementations§
source§impl Boxed for GFrame
impl Boxed for GFrame
source§unsafe fn from_raw(ptr: <GFrame as OpenCVFromExtern>::ExternReceive) -> Self
unsafe fn from_raw(ptr: <GFrame as OpenCVFromExtern>::ExternReceive) -> Self
source§fn into_raw(self) -> <GFrame as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw(self) -> <GFrame as OpenCVTypeExternContainer>::ExternSendMut
source§fn as_raw(&self) -> <GFrame as OpenCVTypeExternContainer>::ExternSend
fn as_raw(&self) -> <GFrame as OpenCVTypeExternContainer>::ExternSend
source§fn as_raw_mut(&mut self) -> <GFrame as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut(&mut self) -> <GFrame as OpenCVTypeExternContainer>::ExternSendMut
source§impl GFrameTrait for GFrame
impl GFrameTrait for GFrame
fn as_raw_mut_GFrame(&mut self) -> *mut c_void
source§impl GFrameTraitConst for GFrame
impl GFrameTraitConst for GFrame
fn as_raw_GFrame(&self) -> *const c_void
impl Send for GFrame
Auto Trait Implementations§
impl Freeze for GFrame
impl RefUnwindSafe for GFrame
impl !Sync for GFrame
impl Unpin for GFrame
impl UnwindSafe for GFrame
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