What is the difference between videoinput and imaq.VideoDevice?

1 view (last 30 days)
There are two ways to initialize a video object:
vid = videoinput('winvideo');
and
vid = imaq.VideoDevice('winvideo')
What's the difference? Is one better suited for high-speed acquisition?

Accepted Answer

David Tarkowski
David Tarkowski on 7 Jul 2013
The object returned by imaq.VideoDevice is a System Object and is designed for stream processing. The object returned by videoinput is just a normal MATLAB object. Under the covers, both objects use the same fundamental implementation so both acquire the same data at the same rate.
Since the imaq.VideoDevice is a System Object, it supports code generation with MATLAB Coder. However, since System Objects are designed for stream processing, it does not support buffered acquisition or events, which the videoinput object does. If you need code generation, you should use the imaq.VideoDevice interface. If you need buffered acquisition or events, you should use videoinput. Otherwise, you can choose either interface.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!