Тессеракт изображения, которые практически идентичны, разбираются по-разному - PullRequest
0 голосов
/ 01 мая 2019

Я открываю изображение, выполняю морфологическое преобразование и сохраняю его. Тем не менее, между изображениями нет видимых различий (даже при увеличении до пикселей). Ссылки на изображения ниже. Один из них анализирует правильно, а другой - неправильно.

Вот кикер. Если я открою изображение, которое неправильно анализируется в MS Paint, абсолютно ничего не сделаю, а затем нажму «Сохранить», оно волшебным образом начнет анализ.

Кто-нибудь может дать объяснение этому?

Вот мой код

img = cv2.imread(IMAGE, 1)
imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
kernel = np.ones((1,40), np.uint8)
morphed = cv2.morphologyEx(imgray, cv2.MORPH_CLOSE, kernel)
dst = cv2.add(imgray, (255-morphed))
cv2.imwrite("out.png", dst)

Изображение проанализировано как "52.983.842.":

enter image description here

Изображение неправильно проанализировано как "522.983.8422.":

enter image description here

1 Ответ

2 голосов
/ 01 мая 2019

Два изображения действительно различаются.

Если вы поместите их в GIMP и установите режим наложения слоя на Subtract, вы получите:

difference

После последнего 2 разница, похоже, содержит некоторый артефакт, который Тессеракт считает другой цифрой.

Сохранение результата с помощью Paint может перекодировать вывод.

Учтите, что ваши изображения в формате JPG, сжатые с потерями.Существует несколько способов создания таблиц сжатия, и вы получите разные артефакты в зависимости от этого.Просто кажется, что в этом текущем случае Тессеракт уловил шум.

А также обратите внимание, что JPG и текст не сочетаются друг с другом .Вы должны рассмотреть возможность использования форматов без потерь, таких как PNG.

...