dear 8flm6 Thanks for your helpful information. The case I am interested in uses bright 7 segment display of a series of numbers. The quality of the photographer is unpredictable. I would like to throw away all the surrounding words and clutter on the screen and send just these numbers to the OCR system. I would greatly appreciate any pointers to isolating an area of brightness in a picture. Thanks John
On Fri, Jul 1, 2011 at 3:48 PM, 8flm6 <[email protected]> wrote: > Take a look at TessBaseAPI::TesseractRect(). This is basically a > convinience method which wraps up the calls for you. > In the first step set the image you want to work on. All you need is a > pointer to your image data ,the dimensions of your image (width, > height), > the size of one pixel in bytes (which is 3 for the imag you uploaded) > and the number of bytes in one line of your image ( = > size_of_one_pixel * width_of_the_image). > In the second step you call SetRectangle() giving the coordinates of > the upper left corner of your ROI and the height and the width > of the ROI to the method ( you should check prior to that the ROI > dimensions do not exceed the dimensions of the source image). > The last step is to call GetUTF8Test() which returns your resultstring > as char pointer. You might rethink converting your images to grayscale > as well. > I got a good result on your image after I grayscaled it in Gimp and > saved it as BMP: > > https://docs.google.com/leaf?id=0B2ifXewLRYsdMjAyNTAwZTctZDgyZi00NWM3LWFlZTYtYWJmYjEwZDZkMTA3&hl=de > > > > > On 30 Jun., 18:00, "[email protected]" <[email protected]> wrote: > > This SetRectangle() method is intriguing. Could you give me an > > example on how to implement it? 95% of the new meters are on the left > > half of the picture. > > > > Thanks! > > > > On Jun 29, 1:53 pm, 8flm6 <[email protected]> wrote: > > > > > > > > > > > > > > > > > Hello, > > > > > The Tesseract API provides a SetRectangle() method, to limit the > > > character recognition to a certain area. > > > If all of your images look nearly the same (new electric meter on the > > > lower left side and the old on the right), > > > you could define a static region of interest which generously covers > > > the number you'd like to read on every image. > > > If every image looks different, you will likely need a more elaborate > > > algorithm which finds the ROIs first, > > > and then passes the Coordinates to Tesseract. Then in the end you > > > could apply a regular expression to your reading > > > results to filter the number you're searching for, something like '/ > > > [0-9]{2} [0-9]{3} [0-9]{3}/' if the number has always the > > > format like the one in the picture you uploaded. Hope you'll find a > > > solution! > > > > > 8flm6 > > > > > On 29 Jun., 13:32, "[email protected]" <[email protected]> wrote: > > > > > > Update: on a batch of 60 meters, I was able to get 46 meters > > > > recognized. > > > > > > First i ran a batch that runs tesseract on every .tif, and names the > > > > output <picture name>.txt. > > > > Then, I simply wrote a batch script to compare a text file of known > > > > meter numbers against every tesseract output file using findstr. > > > > The results show up as <picture name>.tif:<picture name>.txt. > > > > > > Is there any way to optimize the pictures to make the text easier to > > > > read before processing? I tried converting to grayscale last night, > > > > but it actually hurt the results. The meters that don't come across > > > > all seem to have minimal glare problems. > > > > > > At any rate, in the trials, I have already saved myself a ton of > time, > > > > and for that I am happy. Where's the donate button? > > > > On Jun 28, 1:30 pm, "[email protected]" <[email protected]> > wrote: > > > > > > > Scenario: We have 7000+ electric meters being changed out, and > while > > > > > changing them out we are taking a picture of the new meter beside > the > > > > > old meter to capture the previous reading. We are looking for a > way > > > > > to extract the meter number from all 7000 pictures > programmatically. > > > > > I have gotten as far as creating a batch script to run tesseract > for > > > > > all files in a folder, and create output txt files for all of the > > > > > images. Within these images I see a bunch of jarbled text, and > > > > > eventually I find the meter number. My question, can I extract > just > > > > > that meter number out of the images programmatically? I have a > list > > > > > of all 7000 meter numbers, and considered maybe making a dictionary > > > > > file of just these. Would that possibly work? Can tesseract be > set > > > > > to ignore anything that isn't a dictionary match? > > > > > > > Sample meter file:http://deangrell.com/CIMG0005.tif > > > > > > > The meter number we are trying to read is on the left,76 207 799. > > > > > Everything pulls across, even the "SANAGAMO" on the bottom of the > > > > > right meter. This software is truly impressive, I just need to > find a > > > > > way to focus it on the meter numbers. > > > > > > > Any help at all would be appreciated! > > -- > You received this message because you are subscribed to the Google > Groups "tesseract-ocr" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/tesseract-ocr?hl=en > -- John Brohan http://www.woundfollowup.com tel 514 995 3749. 5 minute movie http://tinyurl.com/22kfdv8 -- You received this message because you are subscribed to the Google Groups "tesseract-ocr" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/tesseract-ocr?hl=en

