OCL Vision toolkit

Hi Orocos Components Library reviewers,

here at PMA we have our own branch for experimental component development.
Some time ago we created some components using OpenCV and a "vision"-toolkit.

The following patches contain the vision components, the toolkit and some
changes to the hardware/camera component.

The components are the following:

- DisplayImageComponent: a "reporter" for images, works kind of the same as
the filereporter but shows the data in windows.
- WriteImage: a component to write images from a port into a file
- LoadImage: a component to load images from a file and put them onto a port
- LoadVidoe: a component to load a video from a file and put the streaming onto
a port
- VisionToolkit: the RTT-types toolkit for images

Ruben

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

AttachmentSize
camera.patch3.53 KB
vision.patch59.64 KB

OCL Vision toolkit

On Tuesday, February 17, 2009, at 02:29PM, "Ruben Smits" <smits [dot] ruben [..] ...> wrote:
>On Tuesday 17 February 2009 18:12:16 S Roderick wrote:
>> On Tuesday, February 17, 2009, at 09:42AM, "Ruben Smits"
><ruben [dot] smits [..] ...> wrote:
>> >Hi Orocos Components Library reviewers,
>> >
>> >here at PMA we have our own branch for experimental component development.
>> >Some time ago we created some components using OpenCV and a
>> > "vision"-toolkit.
>> >
>> >The following patches contain the vision components, the toolkit and some
>> >changes to the hardware/camera component.
>> >
>> >The components are the following:
>> >
>> >- DisplayImageComponent: a "reporter" for images, works kind of the same
>> > as the filereporter but shows the data in windows.
>> >- WriteImage: a component to write images from a port into a file
>> >- LoadImage: a component to load images from a file and put them onto a
>> > port - LoadVidoe: a component to load a video from a file and put the
>> > streaming onto a port
>> >- VisionToolkit: the RTT-types toolkit for images
>>
>> Wonderful to see this, thanks Ruben! Some questions/comments
>>
>> - This toolkit is limited to inside a single process, correct? It does
>> *not* have an Orocos transport plugin/toolkit supporting transport of
>> IplImage's across the network via Corba.
>
>No.
>
>> - It only supports 8-bit RGB and 8-bit grey-scale images? Is this an
>> either/or? It is hard to tell from the patch ...
>
>Since the RGB-pixel and Gray-pixel are defined as unsigned char I suppose it
>currently only supports 8-bit images.
>
>> - It is not for use inside real-time components, due to use of
>> cvCloneImage() style calls? (I understand that image acquisition is seldom
>> real-time, I'm thinking of just image processing here)
>
>The cvCloneImage is only used for the constructors, and if the sizes of the
>image are not the same. Otherwise it uses the cvCopyImage which should be
>real-time save. So basically I think it can be used inside real-time
>components.
>
>Remember this is the result of master student theses, I did not write the code
>myself ;), so I have no idea about the design decisions.

These were observations, not criticisms. It's a good start.
S

OCL Vision toolkit

Hi... and thanks for the job.

I have started quite the same development (naming it Computer Vision Library -- CVL) to have quite the same components. Where my first conception differs is that I would have the rest of my architecture quite independent of image acquisition to keep the same structure independently of being on experimental setup, simulation, testing, replaying...

Then I designed an abstract CameraDevice class with data ports, properties and so on. Then I specialized this class into a FirewireCamera (quite similar to the CaptureCamera) to capture image using OpenCV.

What I have just started is to create another ReloadComponent implementing CameraDevice to reload (and post to the architecture) the images acquired during experiments.

I also plan to develop a FakeCamera (implementing CameraDevice again) to post a unique fake image for architecture testing.

Moreover, I am (desesperately) trying to make a Corba Transport plugin for IplImages to be able to configure the camera properties from a remote PC.

All these stuffs have just begun and I have planned to release something -- maybe an independent cv lib for orocos -- as soon as I have some stable components and some validated results.

---
Charles.