
| 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. |
| |
The window of the resulting application looks as follows:

This sample application illustrates how to manipulate the parameters for the visualization of underexposed and overexposed pixels directly from program code - as opposed to using the built-in dialog that provides the visualization functionality.
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#] private TIS.Imaging.FrameFilter filter;
[VB.NET] Private filter As TIS.Imaging.FrameFilter
The filter provides the following parameters: the threshold ("Threshold"), a parameter indicating whether pixels are marked that are brighter or darker than the threshold ("ClipAboveThreshold"); and the color and pattern that is used to mark the pixels ("FillMode" and "FillColor").
The threshold can be manipulated with the scrollbar sldThreshold. Whether pixels are marked that are brighter or darker than the threshold is controlled by the 2 radio buttons rbClipAbove and rbClipBelow. The beginning of the program is extended by 2 function calls that initialize the controls on the main form.
[C#] InitControls(); UpdateControls();
[VB.NET] InitControls() UpdateControls()
The function InitControls initializes the minimum and maximum value of the scrollbar sldThreshold.
[C#] private void InitControls() { sldThreshold.Minimum = 0; sldThreshold.Maximum = 255; }
[VB.NET] Private Sub InitControls() sldThreshold.Minimum = 0 sldThreshold.Maximum = 255 End Sub
The function UpdateControls assigns the filter parameters "Enable", "Threshold" and "ClipAboveThreshold" to the checkbox cbEnable, the scrollbar sldThreshold and the radio buttons rbClipAbove and rbClipBelow.
[C#] private void UpdateControls() { filter.BeginParameterTransfer(); // Update the "Enable" checkbox. cbEnable.Checked = filter.GetBoolParameter("Enable"); // Update the radio buttons. bool state = filter.GetBoolParameter("ClipAboveThreshold"); rbClipAbove.Checked = state; rbClipBelow.Checked = !state; // Update the slider. sldThreshold.Value = filter.GetIntParameter("Threshold"); txThreshold.Text = sldThreshold.Value.ToString(); filter.EndParameterTransfer(); }
[VB.NET] Private Sub UpdateControls() filter.BeginParameterTransfer() ' Update the "Enable" checkbox. cbEnable.Checked = filter.GetBoolParameter("Enable") ' Update the radio buttons. Dim state As Boolean = filter.GetBoolParameter("ClipAboveThreshold") rbClipAbove.Checked = state rbClipBelow.Checked = Not state ' Update the slider. sldThreshold.Value = filter.GetIntParameter("Threshold") txThreshold.Text = sldThreshold.Value filter.EndParameterTransfer() End Sub
The event handler for the scrollbar sldThreshold assigns its current value to the filter parameter "Threshold" and updates the text field txThreshol with this value.
[C#] private void sldThreshold_Scroll(object sender, System.EventArgs e) { filter.BeginParameterTransfer(); filter.SetIntParameter("Threshold", sldThreshold.Value); filter.EndParameterTransfer(); txThreshold.Text = sldThreshold.Value.ToString(); }
[VB.NET] Private Sub sldThreshold_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sldThreshold.Scroll filter.BeginParameterTransfer() filter.SetIntParameter("Threshold", sldThreshold.Value) filter.EndParameterTransfer() txThreshold.Text = sldThreshold.Value End Sub
The event handler for the radio button rbClipAbove assigns True to the filter parameter "ClipAboveThreshold" and unchecks the radio button rbClipBelow. The event handler for the radio button rbClipBelow works similarly.
[C#] private void rbClipAbove_CheckedChanged(object sender, System.EventArgs e) { filter.BeginParameterTransfer(); filter.SetBoolParameter("ClipAboveThreshold", true); filter.EndParameterTransfer(); rbClipBelow.Checked = false; } private void rbClipBelow_CheckedChanged(object sender, System.EventArgs e) { filter.BeginParameterTransfer(); filter.SetBoolParameter("ClipAboveThreshold", false); filter.EndParameterTransfer(); rbClipAbove.Checked = false; }
[VB.NET] Private Sub rbClipBelow_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbClipBelow.CheckedChanged filter.BeginParameterTransfer() filter.SetBoolParameter("ClipAboveThreshold", False) filter.EndParameterTransfer() rbClipAbove.Checked = False End Sub Private Sub rbClipAbove_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbClipAbove.CheckedChanged filter.BeginParameterTransfer() filter.SetBoolParameter("ClipAboveThreshold", True) filter.EndParameterTransfer() rbClipBelow.Checked = False 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.