Удаление лишних пикселей / строк с номерного знака

Я использую детектор функций HOG на основе классификации SVM. Я могу успешно извлечь номерной знак, но извлеченный номерной знак содержит несколько ненужных пикселей / строк помимо номера лицензии. Мой конвейер обработки изображений выглядит следующим образом:

  1. Применение детектора HOG на изображении в градациях серого
  2. Обрезка обнаруженного региона
  3. Изменение размера обрезанного изображения
  4. Применение адаптивного порога для выделения номеров пластин и фона фильтрации с использованием следующего кода OpenCV

    cvAdaptiveThreshold(cropped_plate, thresholded_plate, 255,CV_ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY_INV,11, 9);
    
  5. Удаление перекоса пластины

Из-за этой ненужной информации программное обеспечение Tesseract-OCR сбивается с толку, чтобы правильно распознавать числа. Извлеченные изображения номерных знаков выглядят следующим образом.

Как я могу отфильтровать эти ненужные пиксели / линии на изображениях? Любая помощь будет оценена.

2 ответа

Решение

Вы хотите удалить все нетекстовые объекты на изображении. Для этого я предлагаю отсортировать капли по области их ограничительной рамки (maxy - miny)*(maxx - minx). Провести статистический анализ; Вы знаете, что ищете объекты аналогичного размера. Как только вы определили приблизительный размер символа, сделайте большую ограничивающую рамку, которая оценивает весь текст. Держите в нем маленькие капли, поэтому для вашей картинки знак тире будет сохранен.

Вы можете, вероятно, многого добиться, отфильтровывая контуры. Попробуйте найти контуры, которые имеют определенное соотношение ширины и высоты, определенное количество белых пикселей с countNonZero() и т.д. Если это не помогает, вы всегда можете попытаться реализовать алгоритм обнаружения текста, такой как алгоритм сглаживания длины выполнения (RLSA).

Другие вопросы по тегам