Struct VideoCapture

Source
pub struct VideoCapture { /* private fields */ }
Expand description

Class for video capturing from video files, image sequences or cameras.

The class provides C++ API for capturing video from cameras or for reading video files and image sequences.

Here is how the class can be used: @include samples/cpp/videocapture_basic.cpp

Note: In [videoio_c] “C API” the black-box structure CvCapture is used instead of %VideoCapture.

Note:

  • (C++) A basic sample on using the %VideoCapture interface can be found at OPENCV_SOURCE_CODE/samples/cpp/videocapture_starter.cpp
  • (Python) A basic sample on using the %VideoCapture interface can be found at OPENCV_SOURCE_CODE/samples/python/video.py
  • (Python) A multi threaded video processing sample can be found at OPENCV_SOURCE_CODE/samples/python/video_threaded.py
  • (Python) %VideoCapture sample showcasing some features of the Video4Linux2 backend OPENCV_SOURCE_CODE/samples/python/video_v4l2.py

Implementations§

Source§

impl VideoCapture

Source

pub fn default() -> Result<VideoCapture>

Default constructor

Note: In [videoio_c] “C API”, when you finished working with video, release CvCapture structure with cvReleaseCapture(), or use Ptr<CvCapture> that calls cvReleaseCapture() automatically in the destructor.

Source

pub fn from_file(filename: &str, api_preference: i32) -> Result<VideoCapture>

Default constructor

Note: In [videoio_c] “C API”, when you finished working with video, release CvCapture structure with cvReleaseCapture(), or use Ptr<CvCapture> that calls cvReleaseCapture() automatically in the destructor.

§Overloaded parameters

Opens a video file or a capturing device or an IP video stream for video capturing with API Preference

§Parameters
  • filename: it can be:
  • name of video file (eg. video.avi)
  • or image sequence (eg. img_%02d.jpg, which will read samples like img_00.jpg, img_01.jpg, img_02.jpg, ...)
  • or URL of video stream (eg. protocol://host:port/script_name?script_params|auth)
  • or GStreamer pipeline string in gst-launch tool format in case if GStreamer is used as backend Note that each video stream or IP camera feed has its own URL scheme. Please refer to the documentation of source stream to know the right URL.
  • apiPreference: preferred Capture API backends to use. Can be used to enforce a specific reader implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.
§See also

cv::VideoCaptureAPIs

§C++ default parameters
  • api_preference: CAP_ANY
Source

pub fn from_file_def(filename: &str) -> Result<VideoCapture>

@overload Opens a video file or a capturing device or an IP video stream for video capturing with API Preference

§Parameters
  • filename: it can be:
  • name of video file (eg. video.avi)
  • or image sequence (eg. img_%02d.jpg, which will read samples like img_00.jpg, img_01.jpg, img_02.jpg, ...)
  • or URL of video stream (eg. protocol://host:port/script_name?script_params|auth)
  • or GStreamer pipeline string in gst-launch tool format in case if GStreamer is used as backend Note that each video stream or IP camera feed has its own URL scheme. Please refer to the documentation of source stream to know the right URL.
  • apiPreference: preferred Capture API backends to use. Can be used to enforce a specific reader implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.
§See also

cv::VideoCaptureAPIs

§Note

This alternative version of [from_file] function uses the following default values for its arguments:

  • api_preference: CAP_ANY
Source

pub fn from_file_with_params( filename: &str, api_preference: i32, params: &Vector<i32>, ) -> Result<VideoCapture>

Default constructor

Note: In [videoio_c] “C API”, when you finished working with video, release CvCapture structure with cvReleaseCapture(), or use Ptr<CvCapture> that calls cvReleaseCapture() automatically in the destructor.

§Overloaded parameters

Opens a video file or a capturing device or an IP video stream for video capturing with API Preference and parameters

The params parameter allows to specify extra parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ...). See cv::VideoCaptureProperties

Source

pub fn new(index: i32, api_preference: i32) -> Result<VideoCapture>

Default constructor

Note: In [videoio_c] “C API”, when you finished working with video, release CvCapture structure with cvReleaseCapture(), or use Ptr<CvCapture> that calls cvReleaseCapture() automatically in the destructor.

§Overloaded parameters

Opens a camera for video capturing

§Parameters
  • index: id of the video capturing device to open. To open default camera using default backend just pass 0. (to backward compatibility usage of camera_id + domain_offset (CAP_*) is valid when apiPreference is CAP_ANY)
  • apiPreference: preferred Capture API backends to use. Can be used to enforce a specific reader implementation if multiple are available: e.g. cv::CAP_DSHOW or cv::CAP_MSMF or cv::CAP_V4L.
§See also

cv::VideoCaptureAPIs

§C++ default parameters
  • api_preference: CAP_ANY
Source

pub fn new_def(index: i32) -> Result<VideoCapture>

@overload Opens a camera for video capturing

§Parameters
  • index: id of the video capturing device to open. To open default camera using default backend just pass 0. (to backward compatibility usage of camera_id + domain_offset (CAP_*) is valid when apiPreference is CAP_ANY)
  • apiPreference: preferred Capture API backends to use. Can be used to enforce a specific reader implementation if multiple are available: e.g. cv::CAP_DSHOW or cv::CAP_MSMF or cv::CAP_V4L.
§See also

cv::VideoCaptureAPIs

§Note

This alternative version of [new] function uses the following default values for its arguments:

  • api_preference: CAP_ANY
Source

pub fn new_with_params( index: i32, api_preference: i32, params: &Vector<i32>, ) -> Result<VideoCapture>

Default constructor

Note: In [videoio_c] “C API”, when you finished working with video, release CvCapture structure with cvReleaseCapture(), or use Ptr<CvCapture> that calls cvReleaseCapture() automatically in the destructor.

§Overloaded parameters

Opens a camera for video capturing with API Preference and parameters

The params parameter allows to specify extra parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ...). See cv::VideoCaptureProperties

Source

pub fn new_1( source: &Ptr<IStreamReader>, api_preference: i32, params: &Vector<i32>, ) -> Result<VideoCapture>

Default constructor

Note: In [videoio_c] “C API”, when you finished working with video, release CvCapture structure with cvReleaseCapture(), or use Ptr<CvCapture> that calls cvReleaseCapture() automatically in the destructor.

§Overloaded parameters

Opens a video using data stream.

The params parameter allows to specify extra parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ...). See cv::VideoCaptureProperties

Source

pub fn wait_any( streams: &Vector<VideoCapture>, ready_index: &mut Vector<i32>, timeout_ns: i64, ) -> Result<bool>

Wait for ready frames from VideoCapture.

§Parameters
  • streams: input video streams
  • readyIndex: stream indexes with grabbed frames (ready to use .retrieve() to fetch actual frame)
  • timeoutNs: number of nanoseconds (0 - infinite)
§Returns

true if streamReady is not empty

@throws Exception %Exception on stream errors (check .isOpened() to filter out malformed streams) or VideoCapture type is not supported

The primary use of the function is in multi-camera environments. The method fills the ready state vector, grabs video frame, if camera is ready.

After this call use VideoCapture::retrieve() to decode and fetch frame data.

§C++ default parameters
  • timeout_ns: 0
Source

pub fn wait_any_def( streams: &Vector<VideoCapture>, ready_index: &mut Vector<i32>, ) -> Result<bool>

Wait for ready frames from VideoCapture.

§Parameters
  • streams: input video streams
  • readyIndex: stream indexes with grabbed frames (ready to use .retrieve() to fetch actual frame)
  • timeoutNs: number of nanoseconds (0 - infinite)
§Returns

true if streamReady is not empty

@throws Exception %Exception on stream errors (check .isOpened() to filter out malformed streams) or VideoCapture type is not supported

The primary use of the function is in multi-camera environments. The method fills the ready state vector, grabs video frame, if camera is ready.

After this call use VideoCapture::retrieve() to decode and fetch frame data.

§Note

This alternative version of VideoCapture::wait_any function uses the following default values for its arguments:

  • timeout_ns: 0

Trait Implementations§

Source§

impl Boxed for VideoCapture

Source§

unsafe fn from_raw( ptr: <VideoCapture as OpenCVFromExtern>::ExternReceive, ) -> Self

Wrap the specified raw pointer Read more
Source§

fn into_raw(self) -> <VideoCapture as OpenCVTypeExternContainer>::ExternSendMut

Return the underlying raw pointer while consuming this wrapper. Read more
Source§

fn as_raw(&self) -> <VideoCapture as OpenCVTypeExternContainer>::ExternSend

Return the underlying raw pointer. Read more
Source§

fn as_raw_mut( &mut self, ) -> <VideoCapture as OpenCVTypeExternContainer>::ExternSendMut

Return the underlying mutable raw pointer Read more
Source§

impl Debug for VideoCapture

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for VideoCapture

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl VideoCaptureTrait for VideoCapture

Source§

fn as_raw_mut_VideoCapture(&mut self) -> *mut c_void

Source§

fn open_file(&mut self, filename: &str, api_preference: i32) -> Result<bool>

Opens a video file or a capturing device or an IP video stream for video capturing. Read more
Source§

fn open_file_def(&mut self, filename: &str) -> Result<bool>

Opens a video file or a capturing device or an IP video stream for video capturing. Read more
Source§

fn open_file_with_params( &mut self, filename: &str, api_preference: i32, params: &Vector<i32>, ) -> Result<bool>

Opens a video file or a capturing device or an IP video stream for video capturing with API Preference and parameters Read more
Source§

fn open(&mut self, index: i32, api_preference: i32) -> Result<bool>

Opens a camera for video capturing Read more
Source§

fn open_def(&mut self, index: i32) -> Result<bool>

Opens a camera for video capturing Read more
Source§

fn open_with_params( &mut self, index: i32, api_preference: i32, params: &Vector<i32>, ) -> Result<bool>

Opens a camera for video capturing with API Preference and parameters Read more
Source§

fn open_1( &mut self, source: &Ptr<IStreamReader>, api_preference: i32, params: &Vector<i32>, ) -> Result<bool>

Opens a video using data stream. Read more
Source§

fn release(&mut self) -> Result<()>

Closes video file or capturing device. Read more
Source§

fn grab(&mut self) -> Result<bool>

Grabs the next frame from video file or capturing device. Read more
Source§

fn retrieve( &mut self, image: &mut impl ToOutputArray, flag: i32, ) -> Result<bool>

Decodes and returns the grabbed video frame. Read more
Source§

fn retrieve_def(&mut self, image: &mut impl ToOutputArray) -> Result<bool>

Decodes and returns the grabbed video frame. Read more
Source§

fn read(&mut self, image: &mut impl ToOutputArray) -> Result<bool>

Grabs, decodes and returns the next video frame. Read more
Source§

fn set(&mut self, prop_id: i32, value: f64) -> Result<bool>

Sets a property in the VideoCapture. Read more
Source§

fn set_exception_mode(&mut self, enable: bool) -> Result<()>

Switches exceptions mode Read more
Source§

impl VideoCaptureTraitConst for VideoCapture

Source§

fn as_raw_VideoCapture(&self) -> *const c_void

Source§

fn is_opened(&self) -> Result<bool>

Returns true if video capturing has been initialized already. Read more
Source§

fn get(&self, prop_id: i32) -> Result<f64>

Returns the specified VideoCapture property Read more
Source§

fn get_backend_name(&self) -> Result<String>

Returns used backend API name Read more
Source§

fn get_exception_mode(&self) -> Result<bool>

query if exception mode is active
Source§

impl Send for VideoCapture

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<Mat> ModifyInplace for Mat
where Mat: Boxed,

Source§

unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res, ) -> Res

Helper function to call OpenCV functions that allow in-place modification of a 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 unsafe in a general case as it leads to having non-exclusive mutable access to the internal data, but it can be useful for some performance sensitive operations. One example of an OpenCV function that allows such in-place modification is imgproc::threshold. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.