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
See all Video Tutorial Session .
Example Repositories
Small and simple example applications:
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. | |
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. | |
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. |
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
GigeEventCallback
: Defines the behavior of iAMGigEServeriAMGigEServercomands.NewBufferCallback
: Defines the video processing
Note: Is renamed toprocessFrame
in newer versions of code
Note:
GigeEventCallback
is renamed tosmartFeatureCallback
in newer versions of code.Note:
NewBufferCallback
is renamed toprocessFrame
in newer versions of code.
Edit XML - Define a new GenICam Feature
An example XML can be found here: /opencv_dice/src/master/smartDices/smartDices.xml
Add new feature to CustomControl cathegory, e.g. WhiteBalanceAuto:
Define new feature values:
Define new register address:
Implement processing inside
void appClass:: SmartFeatureCallback ( … )
(aliasGigeEventCallback
) callback. Code snippet can be found in the Info toolbox at bottom left of SynView Explorer.