Распознавание автомобильных номеров Opencv

в 18:51, , рубрики: .net, Visual Studio, Работа с векторной графикой

Здравствуйте форумчани. Это моя первая публикация. Написал программу по одному datasheetу.

Теперь раскажу по подробнее. Распознавание автомобильных номеров заключается в следующем:

1) Нахождение границ автомобильного номера;
2) Распознавание цифр и букв.

Нахождение границ автомобильного номера

1) Берем изображение.

Изображение

2) Вычисляем оператор Собеля по горизонтали и вертикали и получаем изображение.

оператор Собеля

3) Высчитываем для каждой горизонтали, разность соседних яркостей пикселей и рисуем кривую (бирюзовая линия — среднее значение всех яркостей пикселей по горизонтали).

Кривая яркостей пикселей

4) Затем ищем Максимумы этой кривой, за средней линии максмумы не ищем

Максимумы кривой

5) После этого вырезаем «горизонтальные» линии из изображения, вычисляем оператор Собеля, также считаем по вертикали яркостную кривую.

o0s0

o1s1

o2s2

o3s3

o4s4

6) Затем выясняем по прямоугольникам, вырезанной области, символы являются ли они автомобильным номером — поиском служит прямая зеленного цвета-находятся ли они рядом с прямой (Автомобильный номер). В конце бинаризируем.

p0
rotate2
rotate1

Распознавание цифр и букв

Нашел в OpenCv функцию AvgSdv — вычисляет среднее значение и стандартное отклонение элементов множества, независимо для каждого канала.

public double Value2(Image<Gray, byte> im, Image<Gray, byte> sample)
        {
            MCvScalar m1, m2;
            Gray gray;
            im.AvgSdv(out gray, out m1);
            Image<Gray, byte> f = im;
            sample.AvgSdv(out gray, out m2);
            return Math.Abs((m1.v0 - m2.v0) + (m1.v1 - m2.v1) + (m1.v2 - m2.v2) + +(m1.v3 - m2.v3));
        }

И этой функции высчитываем для каждого изображения (символа) с эталоном каждой буквы или цифры.

Вот ссылка на программу и исходный код.

Автор: человек со стажем

Источник

Поделиться

  1. Александр:

    Здравствуйте.Нужна помощь в определении засвеченого гос номера с места дтп в ночное время.Сможете помочь?

* - обязательные к заполнению поля