Tuesday, August 4, 2009

[Senior Project] OCR [1]

OCR

There is several ways to use image processing on OCR program, but we decided to use these 2 algorithms.

1. Blob Coloring

We are using Blob coloring technique for OCR. Once an image has been segmented into as number of regions using thresholding or another method, it is often useful to identify each of the connected components in the image. The process of assigning each distinct region unique identifiers is called blob coloring. Blob coloring program uses a simple recursive search algorithm to find all points connected a starting point. Several program options enable the user to search for white objects on black backgrounds or vice versa, and vary the definition of "connected" to use 4 neighbors or 8 neighbors. (But we use 4 neighbors)

Blob coloring algorithm has two passes. In the first pass, colors are assigned to image pixels by using 4 neighbors, L-shaped mask. Color equivalences are established and stored, when needed. In the second pass, the pixels of each connected region are labeled with a unique color by using the color equivalences obtained in the first pass.

After we have the color equivalences of all character, we draw the crop line of each character for define the character.

2. Matching with database

For the database character, we have 7 character of each tone and define the ration of width and height and group them by the result. (More than 1, 0-1, less than 1) Because it can simplify for compare with the scanned text.

After we have cropped character, for each character we find the ratio of width and height. When we have the ratio of scanned character, then we match the character with the database character in the same group of ratio. (From this algorithm, we can eliminate some character from database) After that, we use sum square error for recognize the most similar character between scanned texts and database.