DiskLogger

Specify MATLAB VideoWriter file used to log data

Description

The DiskLogger property specifies the VideoWriter file object used to log data when the LoggingMode property is set to 'disk' or 'disk&memory'. For the best performance, VideoWriter is the recommended file type.

VideoWriter File

For the best performance, logging to disk requires a MATLAB® VideoWriter object, which is a MATLAB object, not an Image Acquisition Toolbox™ object. After you create and configure a VideoWriter object, you provide it to the DiskLogger property.

A MATLAB VideoWriter object specifies the file name and other characteristics. For example, you can use VideoWriter properties to specify the profile used for data compression and the desired quality of the output. For complete information about the VideoWriter object and its properties, see the VideoWriter documentation.

Note

Do not use the variable returned by the VideoWriter function to perform any operation on a VideoWriter file while it is being used by a video input object for data logging. For example, do not change any of the VideoWriter file properties, add frames, or close the object. Your changes could conflict with the video input object.

After Logging and Running are off, it is possible that the DiskLogger might still be writing data to disk. When the DiskLogger finishes writing data to disk, the value of the DiskLoggerFrameCount property should equal the value of the FramesAcquired property. Do not close or modify the DiskLogger until this condition is met.

For more information about logging image data using a VideoWriter file, see Logging Image Data to Disk.

Note

The peekdata function does not return any data while running if in disk logging mode.

Characteristics

Access

Read only while running

Data type

VideoWriter object

Values

The default value is [].

Examples

Using VideoWriter

Create a video input object that accesses a GigE Vision image acquisition device and uses grayscale format at 10 bits per pixel.

vidobj = videoinput('gige', 1, 'Mono10');

You can log acquired data to memory, to disk, or both. By default, data is logged to memory. To change the logging mode to disk, configure the video input object's LoggingMode property.

vidobj.LoggingMode = 'disk'

Create a VideoWriter object with the profile set to Motion JPEG 2000. Motion JPEG 2000 allows writing the full 10 bits per pixel data to the file.

vidobj.DiskLogger = VideoWriter('logfile.mj2', 'Motion JPEG 2000')

Now that the video input object is configured for logging data to a Motion JPEG 2000 file, initiate the acquisition.

start(vidobj)

Wait for the acquisition to finish.

wait(vidobj)

When logging large amounts of data to disk, disk writing occasionally lags behind the acquisition. To determine whether all frames are written to disk, you can optionally use the DiskLoggerFrameCount property.

while (vidobj.FramesAcquired ~= vidobj.DiskLoggerFrameCount) 
    pause(.1)
end

You can verify that the FramesAcquired and DiskLoggerFrameCount properties have identical values by using these commands and comparing the output.

vidobj.FramesAcquired
vidobj.DiskLoggerFrameCount

When the video input object is no longer needed, delete it and clear it from the workspace.

delete(vidobj)
clear vidobj