Struct opencv::imgcodecs::ImageCollection
source · pub struct ImageCollection { /* private fields */ }
Expand description
To read Multi Page images on demand
The ImageCollection class provides iterator API to read multi page images on demand. Create iterator to the collection of the images and iterate over the collection. Decode the necessary page with operator*.
The performance of page decoding is O(1) if collection is increment sequentially. If the user wants to access random page, then the time Complexity is O(n) because the collection has to be reinitialized every time in order to go to the correct page. However, the intermediate pages are not decoded during the process, so typically it’s quite fast. This is required because multipage codecs does not support going backwards. After decoding the one page, it is stored inside the collection cache. Hence, trying to get Mat object from already decoded page is O(1). If you need memory, you can use .releaseCache() method to release cached index. The space complexity is O(n) if all pages are decoded into memory. The user is able to decode and release images on demand.
Implementations§
source§impl ImageCollection
impl ImageCollection
pub fn default() -> Result<ImageCollection>
pub fn new(filename: &str, flags: i32) -> Result<ImageCollection>
Trait Implementations§
source§impl Boxed for ImageCollection
impl Boxed for ImageCollection
source§unsafe fn from_raw(
ptr: <ImageCollection as OpenCVFromExtern>::ExternReceive
) -> Self
unsafe fn from_raw( ptr: <ImageCollection as OpenCVFromExtern>::ExternReceive ) -> Self
source§fn into_raw(
self
) -> <ImageCollection as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw( self ) -> <ImageCollection as OpenCVTypeExternContainer>::ExternSendMut
source§fn as_raw(&self) -> <ImageCollection as OpenCVTypeExternContainer>::ExternSend
fn as_raw(&self) -> <ImageCollection as OpenCVTypeExternContainer>::ExternSend
source§fn as_raw_mut(
&mut self
) -> <ImageCollection as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut( &mut self ) -> <ImageCollection as OpenCVTypeExternContainer>::ExternSendMut
source§impl Debug for ImageCollection
impl Debug for ImageCollection
source§impl Drop for ImageCollection
impl Drop for ImageCollection
source§impl ImageCollectionTrait for ImageCollection
impl ImageCollectionTrait for ImageCollection
fn as_raw_mut_ImageCollection(&mut self) -> *mut c_void
fn init(&mut self, img: &str, flags: i32) -> Result<()>
fn at(&mut self, index: i32) -> Result<Mat>
fn get_mut(&mut self, index: i32) -> Result<Mat>
fn release_cache(&mut self, index: i32) -> Result<()>
fn begin(&mut self) -> Result<ImageCollection_iterator>
fn end(&mut self) -> Result<ImageCollection_iterator>
impl Send for ImageCollection
Auto Trait Implementations§
impl Freeze for ImageCollection
impl RefUnwindSafe for ImageCollection
impl !Sync for ImageCollection
impl Unpin for ImageCollection
impl UnwindSafe for ImageCollection
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