Main Content

Creating Image Acquisition Objects

Types of Objects

After you get information about your image acquisition hardware, described in Getting Hardware Information, you can establish a connection to the device by creating an image acquisition object. The toolbox uses two types of image acquisition objects:

  • Video input object

  • Video source object

Video Input Objects

A video input object represents the connection between MATLAB® and a video acquisition device at a high level. You must create the video input object using the videoinput function. See Creating a Video Input Object for more information.

Video Source Objects

When you create a video input object, the toolbox automatically creates one or more video source objects associated with the video input object. Each video source object represents a collection of one or more physical data sources that are treated as a single entity. The number of video source objects the toolbox creates depends on the device and the video format you specify.

At any one time, only one of the video source objects, called the selected source, can be active. This is the source used for acquisition. The toolbox selects one of the video source objects by default, but you can change this selection. See Specifying the Selected Video Source Object for more information.

The following figure illustrates how a video input object acts as a container for one or more video source objects.

Relationship of Video Input Objects and Video Source Objects

For example, a Matrox® frame grabber device can support eight physical connections, which Matrox calls channels. These channels can be configured in various ways, depending upon the video format. If you specify a monochrome video format, such as RS170, the toolbox creates eight video source objects, one object for each of the eight channels on the device. If you specify a color video format, such as NTSC RGB, the Matrox device uses three physical channels to represent one RGB connection, where each physical connection provides the red data, green data, and blue data separately. With this format, the toolbox only creates two video source objects for the same device.

Creating a Video Input Object

To create a video input object, call the videoinput function specifying the adaptor name, device ID, and video format. You retrieved this information using the imaqhwinfo function (described in Getting Hardware Information). The only required argument is the adaptor name. The toolbox can use default values for the device ID and video format.

This example creates a video input object to represent the connection to a Matrox image acquisition device. The imaqhwinfo function includes the default videoinput syntax in the VideoInputConstructor field of the device information structure.

vid = videoinput('matrox');

This syntax uses the default video format listed in the DefaultFormat field of the data returned by imaqhwinfo. You can optionally specify the video format. See Specifying the Video Format for more information.

Viewing a Summary of a Video Input Object

To view a summary of the characteristics of the video input object you created, enter the variable name you assigned to the object at the command prompt. For example, this is the summary for the object vid.

vid

The items in this list correspond to the numbered elements in the object summary:

  1. The title of the summary includes the name of the image acquisition device this object represents. In the example, this is a Matrox Orion frame grabber.

  2. The Acquisition Source section lists the name of all the video source objects associated with this video input object. For many objects, this list might only contain one video source object. In the example, the Matrox device supports eight physical input channels and, with the default video format, the toolbox creates a video source object for each connection. For an example showing the video source objects created with another video format, see Specifying the Video Format.

  3. The Acquisition Parameters section lists the values of key video input object properties. These properties control various aspects of the acquisition, such as the number of frames to acquire and the location where acquired frames are stored. For information about these properties, see Acquiring Image Data.

  4. The Trigger Parameters section lists the trigger type configured for the object and the number of times the trigger is to be executed. Trigger execution initiates data logging, and the toolbox supports several types of triggers. The example object is configured by default with an immediate trigger. For more information about configuring triggers, see Specifying the Trigger Type.

  5. The Status section lists the current state of the object. A video input object can be in one of several states:

    • Running or not running (stopped)

    • Logging or not logging

    • Previewing or not previewing

    In the example, the object describes its state as Waiting for START. This indicates it is not running. For more information about the running state, see Starting and Stopping a Video Input Object. This section also reports how many frames of data have been acquired and how many frames are available in the buffer where the toolbox stores acquired frames. For more information about these parameters, see Controlling Logging Parameters.

Specifying the Video Format

You can optionally specify the format of the video stream when you create a video input object as a third argument to the videoinput function. This argument can take two forms:

  • A character vector specifying a video format

  • A name of a device configuration file, also known as a camera file

The following sections describe these options. If you do not specify a video format, the videoinput function uses one of the video formats supported by the device. For Matrox and Data Translation® devices, it chooses the RS170 video format. For Windows® devices, it uses the first RGB format in the list of supported formats or, if no RGB formats are supported, the device's default format.

Using a Video Format Character Vector

To specify a video format as a character vector, use the imaqhwinfo function to determine the list of supported formats. The imaqhwinfo function returns this information in the SupportedFormats field of the device information structure. See Determining Supported Video Formats for more information.

In this example, each of the character vectors is a video format supported by a Matrox device.

info = imaqhwinfo('matrox');

info.DeviceInfo.SupportedFormats

ans = 
  Columns 1 through 4

    'M_RS170'    'M_RS170_VIA_RGB'    'M_CCIR'    'M_CCIR_VIA_RGB'    

  Columns 5 through 8

'M_NTSC'    'M_NTSC_RGB'      'M_NTSC_YC'    'M_PAL' 

  Columns 9 through 10

'M_PAL_RGB'    'M_PAL_YC'

For Matrox devices, the toolbox uses the RS170 format as the default. (To find out which is the default video format, look in the DefaultFormat field of the device information structure returned by the imaqhwinfo function.)

Note

For Matrox devices, the M_NTSC_RGB format represents a component video format.

This example creates a video input object, specifying a color video format.

vid2 = videoinput('matrox', 1,'M_NTSC_RGB');

Using Device Configuration Files (Camera Files)

For some devices, you can use a device configuration file, also known as a camera file, to specify the video format as well as other configuration settings. Image acquisition device vendors supply these device configuration files.

Note

The toolbox ignores hardware trigger configurations included in a device configuration file. To configure a hardware trigger, you must use the toolbox triggerconfig function. See Using a Hardware Trigger for more information.

For example, with Matrox frame grabbers, you can download digitizer configuration format (DCF) files, in their terminology. These files configure their devices to support particular cameras.

Some image acquisition device vendors provide utility programs you can use to create a device configuration file or edit an existing one. See your hardware vendor's documentation for more information.

To determine if your image acquisition device supports device configuration files, check the value of the DeviceFileSupported field of the device information structure returned by imaqhwinfo. See Getting More Information About a Particular Device for more information.

When you use a device configuration file, the value of the VideoFormat property of the video input object is the name of the file, not a video format character vector.

This example creates a video input object specifying a Matrox device configuration file as an argument.

Specifying the Selected Video Source Object

When you create a video input object, the toolbox creates one or more video source objects associated with the video input object. The number of video source objects created depends on the device and the video format. The Source property of the video input object lists these video source objects.

To illustrate, this example lists the video source objects associated with the video input object vid.

vid.Source
     Display Summary for Video Source Object Array:

      Index:   SourceName:   Selected:
      1        'CH0'         'on'     
      2        'CH1'         'off'    
      3        'CH2'         'off'    
      4        'CH3'         'off'    
      5        'CH4'         'off'    
      6        'CH5'         'off'    
      7        'CH6'         'off'    
      8        'CH7'         'off'

By default, the video input object makes the first video source object in the array the selected source. To use another video source, change the value of the SelectedSourceName property.

This example changes the currently selected video source object from CH0 to CH1 by setting the value of the SelectedSourceName property.

vid.SelectedSourceName = 'CH1';

Note

The getselectedsource function returns the video source object that is currently selected at the time the function is called. If you change the value of the SelectedSourceName property, you must call the getselectedsource function again to retrieve the new selected video source object.

Getting Information About a Video Input Object

After creating a video input object, you can get information about the device it represents using the imaqhwinfo function. When called with a video input object as an argument, imaqhwinfo returns a structure containing information about the object such as the name of the adaptor, name of the device, video resolution, and details of the vendor's device driver and version.

out = imaqhwinfo(vid)
out = 

                AdaptorName: 'winvideo'
                 DeviceName: 'IBM PC Camera'
                  MaxHeight: 96
                   MaxWidth: 128
             NativeDataType: 'uint8'
               TotalSources: 1
    VendorDriverDescription: 'Windows WDM Compatible Driver'
        VendorDriverVersion: 'DirectX 9.0'