• Introduction
  • Programmer's Guide
  • Technical Articles
  • API Documentation
Search Results for

    Show / Hide Table of Contents
    • IC Imaging Control 4 .NET Class Library
      • What's New
        • Version History
        • Transitioning from IC Imaging Control 3.x .NET Component
      • Library Organization
      • Programmer's Guide
        • Getting Started
        • Device Enumeration
        • Configuring the Video Capture Device
        • Grabbing an Image
      • Example Programs
      • Technical Articles
        • Grabber States
        • Accessing Device Properties
        • Error Handling
        • Logging
        • Distributing Your Applications

    Transitioning from IC Imaging Control 3.x .NET Component

    This section contains information about the IC Imaging Control 4 .NET Class Library from the perspective of a user of the IC Imaging Control 3.x .NET Component.

    Key Differences

    The IC Imaging Control 4 .NET Class Library is a spiritual successor to the IC Imaging Control 3.x .NET Component, but not source code compatible. Support for many DirectShow-specific concepts, such as video formats and fixed frame rates has been dropped. Rarely used functionalities such as frame filters, debayering configuration were removed.

    The IC Imaging Control 4 .NET Class Library is compatible with both .NET Framework 4.5 and .NET 6.0 or later.

    While the IC Imaging Control 3.x .NET Component supported DirectShow devices, the IC Imaging Control 4 .NET Class Library uses the machine vision standard GenICam GenTL as its driver interface. This allows the use of advanced camera features such as asynchronous device events or chunk data.

    Familiar Concepts

    Device and Stream Handling

    Like the TIS.Imaging.ICImagingControl class, the Grabber class represents an opened video capture device as well as its possibly enabled data stream.

    Display in a Windows Forms Control

    Use the WinForms.Display control to display images in a Windows Forms application.

    Access to Images Through Sink Types

    Like in 3.5, images from the video capture device flow into a Sink object and can be accessed from there. Both the SnapSink and QueueSink are available and its use should be familiar to previous users of FrameSnapSink and FrameQueueSink.

    Changed Concepts

    Device Enumeration

    Instead of providing only a flat list of device names, the IC Imaging Control 4 .NET Class Library contains a device enumerator class (DeviceEnum).

    The device enumerator allows enumerating video capture devices and exposes device information through DeviceInfo It also provides information about the system topology, like information about the network adapters or USB controllers GigEVision or USB3 Vision devices are attached to.

    Device Properties

    The VCDProperty interface with replaced with a new object-oriented API (See Accessing Device Properties). Since device drivers describe their property interfaces via GenICam, the new property API can provide a rich set of information about properties, such as a description, a display name, a unit and representation hints for user interfaces.

    Additionally, properties provide a callback mechanism to notify the program when an aspect of the property such as value or availability changes.

    Video Formats, Video Norms, Frame Rates

    There no longer are API functions for video format or frame rate enumeration. Instead, the image size and frame rate are configured using the Width, Height and AcquisitionFrameRate device properties.

    Video Files

    Video encoding functionality was detached from the grabber. Instead, create a VideoWriter object to save images that were captured using a Sink.

    Display

    In version 3.x, the display was an implicit part of the ICImagingControl control. In IC 4, a Display can be created and attached to a data stream while calling Grabber.StreamSetup or one of its overloads. A display can also be used for manual display of selected ImageBuffer objects.

    Display capabilities are available through the generic EmbeddedDisplay and FloatingDisplay classes. For Windows Forms applications, the specialized WinForms.Display control is avaliable.

    Renamed Concepts

    Live Mode

    Grabber functions that 3.x were related live mode were renamed to match the GenICam GenTL nomenclature consisting of a two-stage initialization: First, a data stream is established, and then image acquisition is started.

    • ICImagingControl.LivePrepare is roughly equivalent to Grabber.StreamSetup and its overloads.
    • ICImagingControl.LiveStart is roughly equivalent to Grabber.AcquisitionStart.
    • ICImagingControl.LiveSuspend is equivalent to Grabber.AcquisitionStop.
    • ICImagingControl.LiveStop is equivalent to Grabber.StreamStop.
    • ICImagingControl.IsLive is equivalent to Grabber.IsAcquisitionActive.

    Renamed Data Types

    • FrameType was replaced by ImageType.
    • The role of IFrame/FrameQueueBuffer is fulfilled by ImageBuffer objects. Some aspects of the former FrameType, e.g. the buffer size, are now part of the image buffer itself (ImageBuffer.BufferSize)
    • VideoCaptureDeviceItem has been replaced by DeviceInfo.
    • FrameQueueSink has been replaced by QueueSink, the behavior is slightly changed.
    • FrameSnapSink has been replaced by SnapSink, the behavior is slightly changed.

    New Property API

    • VCDPropertyItems is replaced by PropertyMap, which, in addition to property enumeration, also contains methods for direct property access.
    • VCDRangeProperty is replaced by PropInteger
    • VCDAbsValProperty is replaced by PropFloat
    • VCDMapStringsProperty is replaced by PropEnumeration
    • VCDSwitchProperty is replaced by PropBoolean
    In this article
    Copyright ©️ 2024 The Imaging Source Europe GmbH www.theimagingsource.com