License Plate Recognition - Determining Color Range For Pixel Comparison
Well after much work regarding vehicle plate detection, I've decid开发者_运维技巧ed that simply finding a 'pattern' of yellow pixels within an image would be a sufficient method of finding the location of a license plate within an image. Currently I use various graphic filters and detect white pixel patterns, however this is proving to be more and more problematic.
Now for the question, I'm aware that the 'yellow' are a license plate is based on numerous factors such as brightness, environment.
Insight of this I would need a range to compare to, for example:
if(FindIfYellow(GetPixel(x, y)))
However I don't know if to use RGB values, specifically individual RGB values to determine if the color is a shade of yellow. Finally is there a website or information of some sort defining these ranges? I know
R: 255 G: 255 B: 0
Is the purest of yellow, but in terms of range I have no idea. Anyway hopefully it's a resonable idea, and the reason I post is to ensure I haven't overlook something, as I have been doing frequently :).
Using CMYK channel separation - Let's OCR the Plate!
Repeating the process with the other image
Is gold yellow? Is yellowish-orange yellow? How about yellow-green?
(My point being that this is a fuzzy definition for a human, let alone for a computer... just decide on a range that looks yellow to you and stick with it.)
Check out OpenALPR (http://www.openalpr.com). It takes a different approach for plate localization -- it uses trained LBP patterns. You may want to use this library in addition to your color-based detection for even greater accuracy. For example, OpenALPR can detect potential plate regions, and then simply verify that a certain percentage of the area is yellow-ish.
精彩评论