Один из подходов к полуавтоматическому удалению областей черных пикселей вокруг номерного знака может заключаться в применении .htm" rel="nofollow noreferrer">PointedColorFloodFill фильтрует четыре раза, размещая начальные точки заливки в четырех углах изображения.
Вот пример кода, в котором я применил фильтр к копии изображения номерного знака из вашего вопроса выше (обрезано, чтобы удалить белую рамку):
var filter = new PointedColorFloodFill();
filter.FillColor = Color.White;
filter.Tolerance = Color.FromArgb(60, 60, 60);
filter.StartingPoint = new IntPoint(0, 0);
filter.ApplyInPlace(image);
filter.StartingPoint = new IntPoint(image.Size.Width - 1, 0);
filter.ApplyInPlace(image);
filter.StartingPoint = new IntPoint(image.Size.Width - 1, image.Size.Height - 1);
filter.ApplyInPlace(image);
filter.StartingPoint = new IntPoint(0, image.Size.Height - 1);
filter.ApplyInPlace(image);
который обеспечивает следующее изображение после завершения фильтрации со всех четырех углов:
![Заливной номерной знак](https://i.stack.imgur.com/z17z7.png)
Вы можете поэкспериментировать с более серым цветом заливки и другим допуском, но этот пример может по крайней мере стать разумной отправной точкой.
ОБНОВЛЕНИЕ Я наткнулся на BradleyLocalThresholding, который может дать вам еще лучшую отправную точку для распознавания OCR. Этот фильтр можно только применять к изображениям с разрешением 8 бит/с, что можно решить, например, сначала применив Оттенки серого на исходном изображении. Если вы добавите следующие четыре строки перед кодом PointedColorFloodFill
:
var grayFilter = new Grayscale(0.3, 0.3, 0.3);
var image = grayFilter.Apply(originalImage);
var bradleyfilter = new BradleyLocalThresholding();
bradleyfilter.ApplyInPlace(image);
и уменьшите допуск PointedColorFloodFill
, например, до 10 для каждого компонента RGB:
filter.Tolerance = Color.FromArgb(10, 10, 10);
полностью отфильтрованный номерной знак теперь будет выглядеть так:
![введите здесь описание изображения](https://i.stack.imgur.com/0E3WA.png)
person
Anders Gustafsson
schedule
03.08.2012