PDA

View Full Version : Capturing synchronized images



Giuseppe
April 14, 2005, 16:52:59
Hello,
Can I capture three pairs of synchronized images from three pairs of triggered DMK31BF03 cameras, in maxim time of 0.35sec?
The process is described below:

- First trigger: Capturing images from TLC1, TLC3, TLC5
- Second trigger: Capturing images from TLC2, TLC4, TLC6
- The process is repeated every 6 sec.

Every Tlc has a ROI of 1024x300 pixels.
Could you send me a VB/Delphi sample code in this topic?
Thanks, Giuseppe.

Stefan Geissler
April 15, 2005, 08:37:07
Giuseppe ,


I think, the FireWire bus should be fast enough to transfer 6 images, each of 786 Kbytes, within a half of a second, but you should calculate it on you own too.

The ROIs are not supported yet, so every time the full image is transferred. When the cameras are setup in ICImagingControl, you should set a low framerate to avoid band width problems on the fire wire bus.

I am sorry, but i have no sample for this issue. But you would create 6 instances of ICImagingControl objects, one for each camera. You may put them into an array. Then you assign the cameras, set video format and what ever is needed. After this, you enable the trigger and now call LiveStart. The ICImagingControls will not wait for an incoming frame. You should create an ImageAvailable handler for each ICImagingControl object. When a frame arrives, the handler is called automatically. The image is saved in an ImageBuffer of the ICImagingControl object.

I suggest you just to start with one small VB project for triggering (i am not really firm with Delphi) to get some experiences about how the trigger and ICImagingControl works. After this, you extend your application to use of an array of ICImagingControl objects. You create an array by putting 6 ICImagingControls on the form of your application.

Please keep in mind, the trigger pulse is created by an external hardware.

If you encounter problems, please post again or write directly to support@imagingcontrol.com so i can try to support you.

Giuseppe
April 15, 2005, 10:45:11
Hi Stefan,
Thanks for your support.
An alternative of process is the following:
Capturing three pairs of synchronized images using three cameras only.
- First trigger: Capturing images from TLC1, TLC2, TLC3
- Second trigger, after dT mS : Capturing images from TLC1, TLC2, TLC3 again.
Now, my questions are:
1) which is the minimum time (dT) between the first and the second trigger?
2) How could I do it using ICImagingControl?
Thank you very much,
Giuseppe.

Stefan Geissler
April 15, 2005, 12:03:40
Hi Guiseppe,

If all cameras are connected to the computer using two or more FireWire boards and all of them are running, then dT can be 0 (zero).

You can do it with IC Imaging Control as i wrote in my last post. I just have no sample. There are some properties like "DeviceTrigger", that switch the cameras in triggered mode.

The trigger signal itself is a TTL pulse. It must be generated with an external hardware. The trigger pulse can not be fired through FireWire. Thus, IC Imaging Control is not able to fire an trigger pulse.

Giuseppe
April 15, 2005, 14:38:51
Stefan,

Can I reach the same perfomance using only one FireWire board with one or more FireWire Hubs?

Thanks for your support and best regards,
Giuseppe.

Stefan Geissler
April 15, 2005, 15:10:35
Giuseppe

In principle yes, you can. The problem is the bandwidth allocation of the cameras. There is a table available, that shows the allocation of bandwidth of several video formats and frame rates:

http://www.1394imaging.com/resources/backgnd/1394/video_bandwidth