Search This Blog

TopMeny

Thursday, December 13, 2007

Movie restoration

A tool for restoration of old movies.
sequence.jpg
The task was to stabilize an old movie so that the frames did not move around and also to correct or normalize the gray scale of the image. We solved this using Matlab and explained in a simple way: looking at a characteristic part of the image and then compare that part to the next frame we were able to stabilize the movie clip. By looking at the histogram of the images we also could correct the gray scale. This program was created in a general way to work on any source.

Red eye removal

A simple red eye removal tool using Matlab.

redeye.jpg
It seems like a simple task, but red eye removal is quite complicated. It includes locating the eye and removing the redness and make the eye look natural with a believable color and specular shine. This was a task that was given to us in the Advances Image Processing course. We completed the program using matlab and got a really good understanding of the problem.

A few persons have asked me if I could publish the matlab code, but I wont do that. Many of you are in school projects and should solve the problem yourself. This seems to be a trivial problem but it is in fact quite complicated. There are many, many ways to solve this and I can give you some hints to a good solution. Do not try to do an automatic solution that scans the whole image, you will then need to use som face-recognition algorithm and you do not want to go there, instead use the built in functions in matlab to mark an area. Then search for round areas in the red channel and do some opening/closing to get rid of noise. When you are changing the color, be sure that you dont remove the specular spot in the eyes becaus that will kill the person in the photo :) (It wont look realistic).

Hybri

A simple hybrid halftoning method written in Matlab.

hybri.jpg
I wanted to see how different halftoning methods worked together and how different areas or characteristics in the image could be used for choosing halftoning method in that area. A rasterization method can have good and bad properties. Then, what about combining the good properties of different halftoning methods and use them in the same image. To get an overview of this I created a simple GUI in Matlab where the user can select halftoning methods for different areas in an image.
Download matlab source (6 MB)
Download report (swe) (0.5 MB)

Project Sarpedon

A pilot for a multiplayer game using AI for real time battle field simulations of thousands of soldiers.


sarpedon.jpg

This project, called Sarpedon, was a part of a course in 3D and Virtual reality. We were five students in this project and we used C++ and DirectX as programming base.

The idea came from a game idea and the goal was to create a 3D-program that can take a script and then display a battle field scenario for the user. The troops should follow rules given in the script and the soldiers act on AI. The idea of this is to have gamers create strategy for their troops and then meet another player on the battle field. An AI-engine will then calculate the result of the battle in a game. The result will be a script that the user can play and view the battle in real-time. View the demo where two sides meet on the battle field. This simulation is running in real-time from a precompiled script and the soldiers act on real-time AI.
Download demo movie (140 MB)

Wednesday, December 12, 2007

Project Holger

A simple client/server chat written in Java.

holger_small.jpg
This project was created by me and five other students during the first year of our university program. The project aimed to create a possibility to run projects over a network. The first part was a web page where users could register and be added to some project, this page also contained a calendar and some project info. The web part was written in PHP and connected to an Access database.
The second part was a client/server program written in Java, connected to the same Access database as the webpage. In this program the user could login and chat with a group of people, the project members. It looked like a simple ICQ or MSN client with a chat and a user list. There was also a possibility to broadcast an image to all the members of the current session. This program was created as a Java Web Start program that could be started directly from the web page.
Half a year later this project was revisited in another course. This time me and two of the other group members redesigned the chat client GUI (Java swing). We used our new knowledge about cognition and perception to analyse and recreate a user friendly interface. Again this was done in Java swing.
View screen shots here (300 KB)