in Hands-on lab/lab-files/src/TollBooth/TollBooth/FindLicensePlateText.cs [114:136]
private static string GetLicensePlateTextFromResult(OCRResult result)
{
var text = string.Empty;
if (result.Regions == null || result.Regions.Length == 0) return string.Empty;
const string states = "ALABAMA,ALASKA,ARIZONA,ARKANSAS,CALIFORNIA,COLORADO,CONNECTICUT,DELAWARE,FLORIDA,GEORGIA,HAWAII,IDAHO,ILLINOIS,INDIANA,IOWA,KANSAS,KENTUCKY,LOUISIANA,MAINE,MARYLAND,MASSACHUSETTS,MICHIGAN,MINNESOTA,MISSISSIPPI,MISSOURI,MONTANA,NEBRASKA,NEVADA,NEW HAMPSHIRE,NEW JERSEY,NEW MEXICO,NEW YORK,NORTH CAROLINA,NORTH DAKOTA,OHIO,OKLAHOMA,OREGON,PENNSYLVANIA,RHODE ISLAND,SOUTH CAROLINA,SOUTH DAKOTA,TENNESSEE,TEXAS,UTAH,VERMONT,VIRGINIA,WASHINGTON,WEST VIRGINIA,WISCONSIN,WYOMING";
string[] chars = { ",", ".", "/", "!", "@", "#", "$", "%", "^", "&", "*", "'", "\"", ";", "_", "(", ")", ":", "|", "[", "]" };
var stateList = states.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
// We are only interested in the first region found, and only the first two lines within the region.
foreach (var line in result.Regions[0].Lines.Take(2))
{
// Exclude the state name.
if (stateList.Contains(line.Words[0].Text.ToUpper())) continue;
foreach (var word in line.Words)
{
if (!string.IsNullOrWhiteSpace(word.Text))
text += (RemoveSpecialCharacters(word.Text)) + " "; // Spaces are valid in a license plate.
}
}
return text.ToUpper().Trim();
}