Skip to content

ImageCapture

PimenovAlexander edited this page Oct 2, 2019 · 3 revisions

Introduction

Typical interface to capture images either synchronously or asynchronously that out library uses is called ImageCaptureInterface or its wrapper ImageCaptureInteraceQt

Image capture usually created by abstract fabric that uses address string to select data provider.

Currently used providers

Here are the supported frame sources.

file: (In core)
prec: (In core)
v4l2: (Linux only)
v4l2d: (Linux only)
ueye: (Linux only so far)
dshow: (Windows only)
dshowd: (Windows only)
any: (Windows only - Provided by OpenCV )
vfw: (Windows only - Provided by OpenCV )
ds: (Windows only - Provided by OpenCV )
opencv_file: (Provided by OpenCV )
avcodec: (Provided by LibAVCodec)
rtsp: (Provided by LibAVCodec)

PREC

Usage

prec:(PRINTF TEMPLATE)

Full format string:

"^([^,]*)(,(\\d*)/(\\d*))?(,(\\d*)ms)?(,skip)?$"

Examples:

./vimouse prec:../data/pair/image0001%0.0s_c%d.pgm ./vimouse prec:../data/pair/image%04d_c%d.pgm

You can specify the delay between frames, simulating different FPS. There are two ways to do it

./bin/recorder prec:../data/pair/image%04d_c%d.pgm,1/10 ./bin/recorder prec:../data/pair/image%04d_c%d.pgm,100ms

DSHOW

Examples

recorder.exe dshow:0,1:1/30:800x600 recorder.exe dshow:0,1:1/30:fjpeg:1280x720

Recommended: recorder.exe dshow:0,1:1/30:fjpeg:960x544

Note you should precisely specify the right parameters, DShow won't adopt to the nearest ones.

DSHOWD

This is useful with Black China camera. ./bin/recorder dshowd:0:1/30:rc

V4L2

This works only for Linux

./bin/recorder v4l2:/dev/video0,/dev/video1:1/30:fjpeg:640x480 ./bin/recorder v4l2:/dev/video0,/dev/video1:1/30:yuyv:640x480

Single camera ./bin/recorder v4l2:/dev/video0

V4L2D

This works only for Linux. This is useful with Black China camera.

./bin/recorder v4l2d:/dev/video0:1/30:640x480:rc ./bin/recorder v4l2d:/dev/video0:1/30:640x480:rcf

./bin/recorder v4l2d:/dev/video0:1/30:1280x480:sbs

Edit this section

UEYE

More info here

To enumerate and setup the cameras you can use "sudo ueyecameramanager". To test the cameras, you can use "ueyedemo". With this tools you can play with the parameters and see what is the impact on the image.

UEye framesource allows to set up the following parameters

Pixel Clock (default value 85MHz.) FPS (default is 50fps) Binning Global/Rolling shutter

./bin/vimouse ueye:1001,1002:85mhz:50fps:x2:global:esync
                      \ /      |     |    |    |     |
                       |       |     |    |    |     \---> Sychronization type (esync, fsync, hsync)
                       |       |     |    |    \---------> Shutter type (rolling, global)    
                       |       |     |    \--------------> Binning - reduce image by factor of 2 on camera( x1 and x2 are supported for our cams)
                       |       |     \-------------------> FPS (in esync high fps are unavailable)
                       |       \-------------------------> Pixel clock  
                       \---------------------------------> Device ids   

Clone this wiki locally