
| Language: | .NET C#/Visual Basic |
| Version: | 3.0.3 |
| Released on: | August 20, 2006 |
| Author: | IC Imaging Control Support Department |
| Requirements: | IC Imaging Control >2.1 Camera, converter or grabber with WDM Stream Class drivers. |
| |

There is an entire chapter dedicated to Frame Filters in the IC Imaging Control documentation. Interested readers are encouraged to take a look at this chapter.
The filter used here marks pixels, which are below or above a pre-determined brightness threshold.
The frame filter's VC++ .NET project can also be downloaded from the top of this page. Please note that the frame filter's source code is not required in order to run and understand the following programming example.
First of all a variable filter of type TIS.Imaging.FrameFilter must be declared in the class Form1. This variable will contain the frame filter and is used to communicate with it.
[C#] public TIS.Imaging.FrameFilter filter;
[VB.NET] Private filter As TIS.Imaging.FrameFilter
The program starts off by showing a built-in dialog that allows a video capture device to be selected (.ShowDeviceSettingsDialog).
In a second step, the filter "Clipping" is loaded and inserted in the display path of IC Imaging Control.
In a third step, the filter is enabled and the live stream is started (.LiveStart).
[C#] private void Form1_Load(object sender, System.EventArgs e) { icImagingControl1.ShowDeviceSettingsDialog(); if (!icImagingControl1.DeviceValid ) return ; filter = icImagingControl1.FrameFilterCreate("Clipping", ""); // Insert the frame filter in the display path of IC. icImagingControl1.DisplayFrameFilters.Add(filter); // Enable the filter filter.SetBoolParameter("Enable", cbEnable.Checked); // Initialize the Enable check box. cbEnable.Checked = true; icImagingControl1.LiveStart(); }
[VB.NET] Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load IcImagingControl1.ShowDeviceSettingsDialog() If Not IcImagingControl1.DeviceValid Then 'Unload(Me) Exit Sub End If filter = IcImagingControl1.FrameFilterCreate("Clipping", "") ' Insert the frame filter in the display path of IC. IcImagingControl1.DisplayFrameFilters.Add(filter) ' Enable the filter filter.SetBoolParameter("Enable", cbEnable.Checked) ' Initialize the Enable check box. cbEnable.Checked = True IcImagingControl1.LiveStart() End Sub
The image processing in the frame filter can be toggled by clicking on the checkbox cbEnable. The parameter "Enable" of the frame filter is set in the change event handler of the checkbox, This toggles the image processing.
[C#] private void cbEnable_CheckedChanged(object sender, System.EventArgs e) { filter.BeginParameterTransfer(); filter.SetBoolParameter("Enable", cbEnable.Checked); filter.EndParameterTransfer(); }
[VB.NET] Private Sub cbEnable_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbEnable.CheckedChanged filter.BeginParameterTransfer() filter.SetBoolParameter("Enable", cbEnable.Checked) filter.EndParameterTransfer() End Sub
The method .ShowDialog displays the built-in dialog allows the following parameters to be set: the brightness threshold; whether pixels are marked that are underexposed or overexposed; the brightness threshold; the color or pattern that is used to mark the pixels. After the dialog has been closed, the checkbox bEnable has to be synchronized with the filter parameter "Enable", as this parameter may have been altered in the dialog.

[C#] private void btParameter_Click(object sender, System.EventArgs e) { filter.ShowDialog(); cbEnable.Checked = filter.GetBoolParameter("Enable"); }
[VB.NET] Private Sub btParameter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btParameter.Click filter.ShowDialog() cbEnable.Checked = filter.GetBoolParameter("Enable") End Sub
Disclaimer
The source code that appears in the IC Imaging Control Source Code Library is indented for educational purposes only. The Imaging Source Europe GmbH, the manufacturer of IC Imaging Control, does not assume any kind of warranty expressed or implied, resulting from the use of the content of this page.