Удаление жирных полос таблицы с помощью ImageMagick

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

Удаление жирных полос таблицы с помощью ImageMagick

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

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

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

Удаление жирных полос таблицы с помощью ImageMagick

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
520
1

Ответы 1

Вот другой способ использования 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

Спасибо за ваш ответ. Я пробовал, но у меня выводится как белое изображение. ibb.co/jzX0kq

ahmed osama 27.10.2018 00:44

Какая у вас версия ImageMagick и дата, связанная с ней. По версии он должен быть 6.8.9.10 или выше только для основных подключаемых компонентов. Но определение среднего цвета = истина появилось еще позже. Если в Linux, обратите внимание, что они не всегда обновляют версию при исправлении, поэтому дата исправления более важна. Однако у кого-то еще была аналогичная проблема ранее (думали, что они все потемнели), и казалось, что их дистрибутив Linux не полностью или должным образом исправлял ImageMagick, хотя дата была текущей. Так что человек не мог получить должных результатов.

fmw42 27.10.2018 01:40

Попробуйте этот тест, чтобы узнать, есть ли у вас версия, совместимая с подключенными компонентами в ImageMagick. Если это сработает, вы должны получить список, подобный приведенному выше convert image.png -define connected-components:verbose=true -connected-components 4 null:. Если у вас нет даже списка, значит, у вас нет версии, способной даже к базовой обработке подключенных компонентов.

fmw42 27.10.2018 02:03

Я получил этот список: Objects (id: bounding-box centroid area): 1: 951x203+19+0 +496.9,+61.7 29201 12514: 943x19+23+183 +507.8,+192.1 16732 2: 465x17+23+0 +255.0,+8.0 7905 4: 37x203+970+0 +988.0,+101.0 7511 3: 474x17+492+0 +752.4,+7.9 7063 </br> не тот номер, но у меня был список. Version: ImageMagick 6.8.9-9 Q16 x86_64 2018-09-28 http://www.imagemagick.org Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC Features: DPC Modules OpenMP Delegates: bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib

ahmed osama 28.10.2018 19:54

Ваша версия была вероятной при тестировании основных подключенных компонентов. Но дата - 29.09.18, так что, чтобы она была актуальной, ее нужно было исправить. Думаю, кто-то еще жаловался на то, что он не работает в 6.8.9.9 Ubuntu. Поэтому я думаю, что они, скорее всего, исправляли не обновления, а только проблемы с безопасностью. Вам следует уточнить у них. Кажется, вам не хватает одного или обоих -define connected-components:remove=0-define connected-components:mean-color=true, если вы не можете воспроизвести мой результат. Ваш результат не показывает никаких значений цвета, что снова заставляет меня думать, что это версия в разработке.

fmw42 28.10.2018 21:35

Другие вопросы по теме