Patrick Bader's Blog a blog about software development


Edge detection with PS3 Eye cam

I recently bought a Playstation Eye camera because I would like to get my hands on multitouch surfaces. At first, I disassembled my camera according to Peter Kirn's instruction videos to remove the IR filter. I was quite lucky since I bought the cam at Saturn in Germany and did not know that there are two versions of the cam. The filter of the one mostly sold in the USA can be removed easily, as seen in the video. The other version cannot be modified that way, so the complete lens has to be exchanged.
With the help of Alex Popovich's Driver which nicely works on Windows 7 64 bit edition and two days of learning some Direct3D programming, I was finally able to render the captured images on screen. After some experimenting with HLSL I had my very first realtime edge detector running.
The detection is quite simple, only a simple 3x3 filter matrix is applied to each frame. Here is the matrix:

0.0,   -1.0,    0.0,
F=  -1.0,    4.0,   -1.0,
0.0,   -1.0,    0.0

And some threshold operations afterwards leads to these results:

Screenshot without edge detection

Screenshot with edge detection enabled

As you can see, the picture is quite blurry which has a negative impact on corner detection. That is because of the missing IR filter, now I am unable to set the focus right, maybe I can put a piece of glass into the lens to correct the error.