SynView Smart App Example using iAMGigEServer

Content

 

Introduction

On this page you will see how to write your own image processing application for iam and stream the result over iAMGigEServer to a host system.

The iam linux system contains build tools therefore it is possible to compile native on the camera. More Details can be found here Pre-Installed Open Source Libraries

The application is shown in the diagram below.

Video: Getting started with iam application development

Example Repositories

Small and simple example applications:

Example Name

Compiling

Discription

Repository

Example Name

Compiling

Discription

Repository

sw_remap_synview

nativ/cross

The example remap_synview uses the function cv::remap from OpenCV.

After processing the image is sent out via GigE Server.

net-gmbh/iam_sw/

sw_remap_boxfilter_synview

nativ/cross

The example sw_remap_boxfilter_synview uses the cv::remap and cv::boxfilter function from OpenCV. It demonstrates the execution of multiple sw- and hw-functions in different processing threads. The connection between the threads is established with two image-buffers. One is written, the other is read and vice versa.

After processing the image is sent out via GigE Server.

net-gmbh/iam_sw/

sw_scaler_synview

nativ/cross

The main processing consists of a simple c-code scaler for horizontal and vertical rescaling.

After processing the image is sent out via GigE Server.

net-gmbh/iam_sw/

The Git repository for the presented example application: bitbucket.org/net-gmbh/opencv_dice/

 

How to build your own smart application

Edit Source Code

Adapt two functions of app.h class

  1. GigeEventCallback: Defines the behavior of iAMGigEServeriAMGigEServercomands.

  2. NewBufferCallback: Defines the video processing
    Note: Is renamed to processFrame in newer versions of code

  1. Note: GigeEventCallback is renamed to smartFeatureCallback in newer versions of code.

  2. Note: NewBufferCallback is renamed to processFrame in newer versions of code.

Bitbucket

Edit XML - Define a new GenICam Feature

An example XML can be found here: /opencv_dice/src/master/smartDices/smartDices.xml

  1. Add new feature to CustomControl cathegory, e.g. WhiteBalanceAuto:

     

  2. Define new feature values:

     

  3. Define new register address:

     

  4. Implement processing inside void appClass:: SmartFeatureCallback ( … ) (alias GigeEventCallback) callback. Code snippet can be found in the Info toolbox at bottom left of SynView Explorer.

 

 

© Copyright 2020 NET GmbH. Privacy Statement