LINUX.ORG.RU

Распознать текст повернутый на 45 градусов - Tesseract + ImageMagick

 ,


0

1

Хочу попросить помощи, есть серия однотипных картинок Образец-1 Образец-2 появилась задача распознать данный текст, то что я попробовал:

$ convert rotated.png -rotate 45 -scale 200% -auto-level unrotated.png
$ tesseract unrotated.png output -psm 7

но в качестве результата в 90% случаев полная ерунда, буду признателен любой помощи.

tesseract unrotated.png output -psm 7

Ты разбей задачу на части и проверяй результат по-отдельности.

ziemin ★★
()
Ответ на: комментарий от ziemin

tesseract не умеет распознавать текст повернутый на 45 градусов, только 90, 180 и т.п. С горизонтальным текстом проблем нет, я так понимаю что после поворота и масштабирования картинка получается несколько размытой, вероятно из-за этого tesseract и выдает мусор... Помощь нужна скорее с convert-ом, как придать тексту четкость и яркость после поворота.

anovokreschenov
() автор топика

Попробуй сначала увеличить раза в 4, потом повернуть, потом уменьшить в 2 раза и бинаризовать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Сделал бинаризацию...Результат мда, а в оригинале если повернуть голову )) вроде бы вполне себе доступно для распознавания.

anovokreschenov
() автор топика
Ответ на: комментарий от Eddy_Em

методом «научного тыка» результат приблизился к 90%


$ convert rotated.png -resize 300x -threshold 40% -rotate 45 unrotated.png
$ tesseract unrotated.png output -psm 7

scale и resize дают разные результаты, в последнем случае более сглаженное изображение (без зубцов)

anovokreschenov
() автор топика
Ответ на: комментарий от windusjatnik

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

anovokreschenov
() автор топика
Ответ на: комментарий от anovokreschenov

строится одним и тем же шрифтом под одним и тем же наклоном,

Тогда шансы есть. Просто я недавно с tesseract, gs, ImageMagick, устал извращаться.
Но у меня исходные файлы из разных источников были.

windusjatnik
()

Сценарий для xnconvert/xnview (на примерах работает, только пробел в одном случае пропустил):

<?xml version="1.0" encoding="UTF-8"?><XnView_script version="1.0" name="conv">
    <Resize mode="0" width="340" height="340" unit="0" ratio="true" orientation="false" enlarge="0" resample="7"/>
    <Rotate angle="45" smooth="false" color="#ffffff" orient="0"/>
    <Automatic_levels/>
    <Change_color_depth method="0" dither="5" ncompo="-1" alpha="255"/>
    <Output folder="" filename="{Filename}" case="0" format="BMP">
        <Options overwrite="0" orgDate="false" keepMeta="true" keepICC="false" keepFolder="false" delOrg="false" multipage="false" allPages="false" openExplorer="false" clearItems="false"/>
        <BMP compress="false" hdrOS2="false"/>
    </Output>
</XnView_script>

( увеличение x10, поворот 45, автокорекция уровней, изменение глубины цвета - ч/б)

arson ★★★★★
()
Ответ на: комментарий от arson

Нашел следующий способ сделать картинки распознаваемыми, работает в 99% случаев, остальное можно preg_replace'м откорретировать

$ convert rotated.png -resample 300x300 -auto-level -rotate 45 \( +clone -blur 0x5 \) -compose Blend -define compose:args=-200 -composite unrotated.png
$ tesseract unrotated.png output -psm 7

Всем спасибо!

anovokreschenov
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.