Thursday, February 28, 2008

Wednesday, February 27, 2008

Realtime blue screen, background subtraction, OpenCV

Just trying out to remove colors near blue using OpenCV.
It's a simple approach: image filtering and classification through blue and red channels intensity.
Still doesn't look good when the object is far from the camera.
Trying to improve it.

Sunday, February 17, 2008

Installing gnome pilot for palm Z22

So, I was getting an error similar to this one, while installing palm on Fedora 8 (FC8), through the gpilot applet

Failed to connect using device 'cradle', on port 'usb:'.
Check your configuration, as you requested a new-style libusb 'usb:'
syncing, but have the old-style 'visor' kernel module loaded.
You may need to select a ttyUSB...' device."

Well, the kernel object module for palm must firstly be added.
The visor( module seems to be readily available and works with palm devices.
In order to add the module, simply type:

modprobe visor

You can type dmesg and see a message similar to this one:

visor 6-1:1.0: Handspring Visor / Palm OS converter detected
usb 6-1: Handspring Visor / Palm OS converter now attached to ttyUSB0
usb 6-1: Handspring Visor / Palm OS converter now attached to ttyUSB1

It tells that /dev/ttyUSB0 or /dev/ttyUSB1 now links to palm. (In my case it was ttyUSB1).

Unfortunately this link is only available to the super user. In order to add it to ordinary users, one can do the following

locate pilot.rules

The location of the pilot rules will be shown.
Then, just copy it to /etc/udev/rules.d/
In my case it was:

cp /usr/share/pilot-link/udev/60-pilot.rules /etc/udev/rules.d/

Now, edit the file /usr/share/pilot-link/udev/60-pilot.rules

BUS=="usb", SYSFS{product}=="Palm Handheld*|Handspring*",KERNEL=="ttyUSB[13579]", SYMLINK="pilot", GROUP="uucp", MODE="0660"
BUS=="usb", SYSFS{product}=="Palm Handheld*|Handspring*",KERNEL=="ttyUSB[13579]", SYMLINK="pilot", GROUP="uucp", MODE="0777"

Non root users have access to palm, now :)

Configure using gnome's pilot applet:

Go to panel-> right click, then "Add to panel", then Pilot Applet...
Now you should configure (note that a symlink will be created from /dev/pilot to ttyUSB1

ls -all /dev/pilot
lrwxrwxrwx 1 root root 7 2008-02-17 14:06 /dev/pilot -> ttyUSB1

Configs should be like this:

type: USB
device: /dev/pilot
Speed (default): 57600
forward forward... click hotsync

Now install Evolution or some other software that will be able to display your palm data.
In order to synchronize contacts, memos, etc, just open the gpilot applet and choose 'Conduits'. There you can choose the calendar, contacts and some other options. As soon as you have Evolution installed, and press the HotSync button in the palm, everything will be synchronized.

Installing applications ( .prc files)

(first step is to pause gpilot Daemon - simply right click, "Pause Daemon", so that gpilot and install instructions don't get mixed)

In order to install applications, simply use pilot-xfer. For instance, to install Foo.prc, from the current directory, one shall use:

pilot-xfer -p /dev/pilot -i Foo.prc

And to remove it, use the same name as you get when you type

pilot-xfer -p /dev/pilot -l

Now remove it like:

pilot-xfer -p /dev/pilot --delete Foo

(in case Foo is the name you obtain with the -l command).

I hope that helps :)

(this works only for one session... in order to add this command to every boot, one can do the following:

emacs /etc/rc.d/rc.local

Add this line to the file:

/sbin/modprobe visor

Saturday, February 16, 2008

Open source class scheduler

I was just wondering how useful would it be to have an open source class scheduler. I mean, create a GTK or Qt based scheduler using Hungarian Matching or some other Operational Research algorithm in order to schedule teachers and classes or other types of tasks.
I've seen commercial versions of around U$100.00, but I'm still not sure how much benefit it would be to the open source community.
I'm tracking this post's visits, so, the number of Google searches that lead here will be tracked and I'll decide if it's worth based on this number and comments to this post.
Thanks for your feedback

Monday, February 11, 2008

GPUWire - A GPU implementation of the livewire image segmentation algorithm

This video shows one of the results of my master thesis which is a solution to the Single Source Shortest Path problem through the use of a GPU.
The idea belongs to the field of GPGPU and my approach was using the GPU in order to parallely expand vertices just like the Delta-stepping algorithm.
Source code, as well as my master thesis can be found at
The GPU API used was NVidia's CUDA.

I'm currently making small corrections to the thesis text as well as trying to clean up the code.
It's interesting to notice that the GUI used is Qt. I'll probably post an entry explaining how to glue CUDA and Qt.
If you're interested, please leave me a comment.