Как определить, что изображение исходит от матричного принтера - PullRequest
0 голосов
/ 09 июля 2019

Я использую Tesseract для распознавания символов, используя оболочку Charles Weld C #.Я предварительно обрабатываю изображения с помощью Open CV.

Моя проблема заключается в том, что мне нужно предварительно обработать изображение по-другому, если оно получено из распечатки точечной матрицы.Есть ли способ, используя OpenCV, чтобы сказать, что изображение было отсканировано с распечатки точечной матрицы?

Я попытался размыть изображение один раз и подсчитать различия, используя метод AbsDiff, который я использую для обнаружения, еслиизображение должно быть очищено от пятен, но нет соответствующего результата, который бы указывал матрицу точек.

1 Ответ

1 голос
/ 10 июля 2019

У меня было несколько мыслей и я решил записать их в ImageMagick , но вы можете в равной степени проделать подобные вещи с OpenCV и findContours().

.

Я использовал это в качестве входного изображения:

enter image description here

Если вы немного размываете черные области, используя морфологию (или, наоборот, расширяете белые, то же самое происходит), каждая из точек будет отделена от соседних. Затем, если вы выполните «Анализ связанных компонентов» , вы увидите, что изображение имеет аномально большое количество очень маленьких точек, которые примерно такой же высоты, как ширина - характеристика окружностей или точек.

Вот код, который я использовал в Терминале для запуска ImageMagick :

magick  dotmatrix.png -threshold 50% -morphology dilate disk:1 \
       -define connected-components:verbose=true               \
       -connected-components 8 -auto-level result.png

В результате получается следующее изображение, в котором каждый обнаруженный шарик получает последовательно более яркий оттенок белого:

enter image description here

Более интересным, однако, является подробный вывод, который имеет одну строку вывода для каждого большого двоичного объекта, обнаруженного на изображении. Он показывает множество маленьких точек 2х2, 3х2 и точек одинакового размера с площадью около 7 пикселей, обведенных красным. Я бы использовал это в качестве основы для изучения еще ...

enter image description here

...