Удаление жирных полос таблицы с помощью ImageMagick - PullRequest
0 голосов
/ 27 октября 2018

У меня есть изображение счета-фактуры, которое содержит таблицы, как показано ниже.

enter image description here

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

convert 0.png -type Grayscale -negate -define morphology:compose=darken -morphology Thinning 'Rectangle:1x80+0+0<' -negate 0.png

Моя проблема заключается в том, что выводится с горизонтальными жирными полосами. ImageMagick не может правильно преобразовать его и вывести, как показано ниже.

enter image description here

Что я могу сделать, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 27 октября 2018

Вот другой способ использования ImageMagick и подключенных компонентов.Сначала обрежьте изображение, чтобы удалить внешний белый цвет, затем используйте подключенные компоненты, чтобы получить идентификатор самой большой черной области, которая должна быть id = 0.Запустите его снова, удалив идентификатор самой большой области, сделав его прозрачным, и, наконец, сгладьте результат с белым.Затем добавьте операцию прореживания, чтобы удалить горизонтальные линии, которые не были полностью черными.См. https://imagemagick.org/script/connected-components.php

convert image.png -fuzz 5% -trim +repage \
-bordercolor black -border 1 \
-define connected-components:verbose=true \
-define connected-components:mean-color=true \
-connected-components 4 \
null:

Objects (id: bounding-box centroid area mean-color):
  0: 953x205+0+0 478.7,65.6 31513 srgba(0,0,0,1)
  10789: 943x19+5+184 488.4,193.1 16885 srgba(255,255,255,1)
  1: 465x17+5+1 237.0,9.0 7905 srgba(255,255,255,1)
  2: 474x17+474+1 733.5,9.0 7096 srgba(255,255,255,1)
  3820: 281x21+667+67 807.0,76.9 5609 srgba(255,255,255,1)
  5195: 281x21+667+90 807.0,99.9 5609 srgba(255,255,255,1)
  7959: 281x20+667+137 807.0,146.4 5328 srgba(255,255,255,1)
  9341: 281x20+667+160 807.0,169.5 5328 srgba(255,255,255,1)
  6540: 281x20+667+114 807.0,123.4 5295 srgba(255,255,255,1)
  2375: 281x19+667+46 807.0,55.0 5047 srgba(255,255,255,1)
...

convert image.png -fuzz 5% -trim +repage \
-bordercolor black -border 1 \
-define connected-components:remove=0 \
-define connected-components:mean-color=true \
-connected-components 4 \
-background white -flatten \
-negate \
-define morphology:compose=darken \
-morphology Thinning 'Rectangle:1x80+0+0<' \
-negate \
result.png

enter image description here

...