Prev: Covariance
Next: inspect enumerations
From: ImageAnalyst on 11 Aug 2010 21:05 Then you'll probably need to do full-blown OCR on your blobs, because you don't want to pay any attention to positional information. But you'll most likely also need to employ some other "smarts" because if you have two of your eight blobs that look like "I"s touching your edge, and six other valid characters in between, how will you know which outer "I" letter to throw out?
From: Leonardo Oliveira on 11 Aug 2010 22:37 ImageAnalyst <imageanalyst(a)mailinator.com> wrote in message <c53f9520-2e6e-4e2e-b238-5c5a65a777bb(a)y11g2000yqm.googlegroups.com>... > Then you'll probably need to do full-blown OCR on your blobs, because > you don't want to pay any attention to positional information. > > But you'll most likely also need to employ some other "smarts" because > if you have two of your eight blobs that look like "I"s touching your > edge, and six other valid characters in between, how will you know > which outer "I" letter to throw out? I figured out a way to do it and it's working so far: M is the mean of heights of all blobs in an image, and D is the standard deviation. Then I eliminated blobs w/ height out of the interval [M-D ; M+D]. The chars don't have approx. the same width, but have the height. Because those bad blobs are usually the borders of the plate itself, and because of it heighter than the chars, or sometimes just little shadows that passed the image processing and binarization along w/ the chars. Then this technique should eliminate then not eliminating the chars, who MUST be inside the interval. Now I'm testing the algorithm with 60 images. Have to figure out some other things about image processing and then see how good (or bad) this technique is. Well, it's nice to have some help. This is the first time I use this forum actively. Before I was just reading some questions and answers of others. Thanks Image Analyst... I'll be back soon. LOL
From: ImageAnalyst on 11 Aug 2010 22:40 Yeah, that'll work. You could also do things like throw out objects that don't have bounding box sizes in a certain allowable range, or have an aspect ratio in a certain allowable range, things like that. Once you have the allowable blobs, you'll still have to do OCR on those. Maybe your OCR algorithm might be smart enough to return "unknown character" if the shape weren't right.
From: Leonardo Oliveira on 11 Aug 2010 23:49 ImageAnalyst <imageanalyst(a)mailinator.com> wrote in message <927102ba-834c-4167-a19b-c7539b52e8cd(a)i31g2000yqm.googlegroups.com>... > Yeah, that'll work. You could also do things like throw out objects > that don't have bounding box sizes in a certain allowable range, or > have an aspect ratio in a certain allowable range, things like that. > Once you have the allowable blobs, you'll still have to do OCR on > those. Maybe your OCR algorithm might be smart enough to return > "unknown character" if the shape weren't right. Yes. I think I'll be more able to develop a good OCR algorithm than an image processing and segmentation algorithm. Think it'll help the image processing by sending back unrecognized plates to be processed in a different way. Don't know, still gotta think about it.
From: Yves Daoust on 13 Aug 2010 03:15
Leonardo, If I were to solve this, I would probably - develop a heuristic score of the "charness" of the blobs, taking into account the width, the height, the touching of edges, the area and/or the OCR score; - consider all sequences of 7 contiguous blobs (if any) by ordering the centroids left to right; - compute a global score for each sequence (average or minimum of the blob scores), possibly ignoring the blobs common to all sequence; - keep the sequence that has the best global score. I hope this helps, - Yves |