Monday, June 14, 2004

My Next Project

Inspired by this sample problem from an IPSC programming competition, I'm going to write an app that solves it.

Hopefully (just thinking the problem through over a cigarette) I'll be able to create something quite flexible. The published solutions depend on a certain degree of manual checking, and comparing. The 'best' solution published iterated through each type of face, and essentially produced a count of each type, as well as a graphical representation (I think). The user could then go through and add together the numbers of smiling faces. Fine.

Not my style, though. I think I'll have a go at writing something more fully automated. I'm thinking it'll work something like this:

  • Takes a file as input ( as published)
  • Some sort of algorithm parses the file into regions of faces (One of the knowns is that faces are all bounded by a continuous line)
  • Each face is rendered graphically (i.e using GDI+ to draw lines to join the dots)
Once each face is rendered as a set of graphics elements, the noise can hopefully be filtered out (some of the faces have wrinkles etc.). Once the face has been broken down into its key parts (Eyes, Nose & Mouth) then it'll be a simple(ish) task to pick out the mouth and determine whether or not it's smiling.

Should be fun. I've got a rough idea of how it'll work, and it'll give me an excuse to use a bit of GDI. Never used it before!

No comments: