Page History: EE Webcam Element
Compare Page Revisions
Page Revision: 2014/07/23 06:46
|
Webcam Element
|
Info |
Category: |
Behavioral Control |
|
AddIn: |
Surveillance |
Creator: |
OkazoLab Team |
|
Scope: |
Global |
Owns Snippets: |
no |
|
Usage: |
Status Screen |
The element allows monitoring the output of any video capturing device, e.g. webcam, on the status screen in EventIDE.
Description
Short description
Snapshots
Snapshot 1
| Snapshot 2 |
Practical Use
Technique 1
- Add new Webcam element to any event in your experiment
- Click on the Webcam element and select a video device from the device list in the property grid
- Add a proxy variable to the Video Output property of the Webcam element
- Create a XAML ContentControl on the status screen and set its binding to the VideoOutput proxy variable:
// you can place the content control inside of any parent container
<ContentControl Width="640" Height="480" Content='{Binding VideoOutput}'/>
- Make sure that camera working and run an experiment. The video output will be rendered scaled to the area of the Content Control on the Status Screen
Element actions aligned with different epochs of the parent event
Epoche | Actions |
---|
Initialized | The camera starts capturing video |
Rendered |
Activating |
Activated |
Running | The camera output is captured and rendered via the Video Output property, if the latter is bound to the status screen |
Deactivated |
Deinitialized | The camera stops capturing video |
Notes
- You can not share output of the same camera among multiple Webcam elements. However, you may have multiple cameras linked to multiple Webcam elements.
- Be careful in using the Webcam element in experiments that require accurate timing. Video capturing is hardware-accelerated on the most computers but a high processor load still can be induced, which may potentially disrupt timing in an experiment. We suggest to always double check timing accuracy while the Webcam element is engaged.
- If you have Webcam element, whose Video Output is not bound to the status Screen, there is no performance costs for rendering. However, video capturing is still performed by a computer in this case, which can cause a slow down.
Properties
Generic Properties
Name | Description | Constraints | Value Type | Upon Runtime Change |
---|
Settings |
Video Device | Defines a video device for capturing | | String |
Device Settings | Opens a window with OS settings of the selected video device. | |
Custom Settings |
Use Custom Settings | Define whether custom frame size and framerate are used in capturing video. Using the custom settings is only possible, if it's supported by the selected video device. Otherwise, the device's default settings will be are applied. | | Boolean |
Resolution | Define the resolution of captured video. The video frames are automatically stretched to any destination size in rendering, however, a large resolution improves rendering quality with some cost in performance. | | clSize |
Frame Rate | Define the framerate of video capturing, in frames per second | | Int32 |
Runtime Status |
Video Output | Returns a live XAML control that renders the captured video output. The control can be used for data binding to the Content property of the XAML ContentControl element, e.g. . The ContentControl can be added to the status screen or to the XAML Layout element. | Fill it | System.Windows.UIElement |
Actual Settings | Returns the actual resolution and framerate of video capture. The property is updated on every experiment run. | FORMATTER ERROR (Snippet Not Found) | String |
+=== Properties inherited from clElement ===
Inherited properties of clElement
Name | Description | Constraints | Value Type | Upon Change |
---|
Control |
Is Enabled | If set to false the element is completely omitted when the experiment is run. | | Boolean |
|
Title | Title of the element. | | String |
|