Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lirec:firewire_camera_notes [2009-03-24 16:32] – created 161.23.251.227lirec:firewire_camera_notes [2009-05-08 12:55] (current) davegriffiths
Line 1: Line 1:
 +======The Lirec camera & Linux======
  
-Notes from getting the official lirec camera working with Linux.+The official lirec camera is:
  
   * [[http://www.theimagingsource.com/|Imaging Source]] DFK 31AF03-Z   * [[http://www.theimagingsource.com/|Imaging Source]] DFK 31AF03-Z
  
-===Howto===+===Getting it working===
  
   * After plugging the camera in, you may need to do:   * After plugging the camera in, you may need to do:
Line 17: Line 18:
   * Use [[http://damien.douxchamps.net/ieee1394/coriander/|Coriander]] to test the camera   * Use [[http://damien.douxchamps.net/ieee1394/coriander/|Coriander]] to test the camera
  
-To get an image you have to press the buttons in the following order:+To get an image working it's a bit picky - you have to press the buttons in the following order:
  
   - In the services tab click 'Receive' at the top   - In the services tab click 'Receive' at the top
Line 26: Line 27:
 <code>./configure --use-unicap=yes</code> <code>./configure --use-unicap=yes</code>
 The examples in libunicap are very useful for debugging, such as device_info, raw_image and sdl_display. There is also an OpenCV example here. The examples in libunicap are very useful for debugging, such as device_info, raw_image and sdl_display. There is also an OpenCV example here.
 +
 +===Getting debayering working in coriander===
 +
 +  - In services tab again, in Format select 'Format_1, Mode_5:1024x768 Mono 8bpp'
 +  - In options click Nearest and GBRG
 +  - In Trigger you should be able to select 30fps
 +
 +You can also get OpenCV to read from this mode, but it will get the raw image directly.
 +
 +===Getting the camera working with OpenCV===
 +
 +The caminfo for OpenCV I used for the raw image was as follows (I think Marek has a better way):
 +
 +<code>
 +static struct caminfo cameras[] =
 +{
 +   {
 +      handle:            NULL,
 +      device_identifier: "Imaging Source DFx 31AF03-Z 1940800048",
 +      fourcc:            UCIL_FOURCC( 'Y', '8', '0', '0' ),
 +      format_size:       { 0, 0, 1024, 768 },
 +      window:            "Camera 1",
 +      image:             NULL,
 +      properties:        camera0_properties,
 +      property_count:    sizeof( camera0_properties ) / sizeof( unicap_property_t ),
 +
 +      cascade: NULL,
 +      storage: NULL,
 +   },
 +};
 +</code>
 +
 +===Using OpenCV for the debayering===
 +
 +OpenCV has a built in debayering algorithm, as part of it's colour space conversions. The one which works with the lirec camera is:
 +<code>cvCvtColor(bayerimage, rgbimage, CV_BayerGB2RGB);</code>
 +Where the input is a 1 channel image and the output is 3 channel RGB image.
 +
 +==The bayer pattern image, raw data from the camera CCD==
 +{{:lirec:bayerpattern.png|}}
 +
 +==Converted to RGB==
 +{{:lirec:bayerrgb.png|}}
  
  • lirec/firewire_camera_notes.1237912339.txt.gz
  • Last modified: 2009-03-24 16:32
  • by 161.23.251.227