I'd go back to looking at pixels. Your bitmap is in a row/column matrix. If you scanned along the rows and then the columns looking for a significant change in the color number ie the series 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF would indicate an "edge" pixel. If you store these along with their row and column. You would then have to analyze your edges looking for patterns. Some ideas might be to look for multiple "edges" in the same row or column. You might be able to match patterns of letters by creating letter patterns in similar row/column collections. You might want to allow the user to vary the difference in color number that constitutes "significant". Of course, the sloppier the lettering, the harder it will be to match.
It sounds like an exciting, challenging project. Good luck.
What you don't know can hurt you!