2012-04-20 4 views
7

Я часто просматриваю рукописные документы, чтобы отправить их коллегам, и вам нужно внести исправления в цифровой файл после его сканирования. (Например, я меняю ошибки, которые я сделал на оригинальном документе белый.)Есть ли способ сделать скрипт, который автоматически исправляет отсканированные документы?

Я имею в виду какой-то сценарий, который может сделать следующее:

Возьмите цветное изображение сканирования (скажем, TIFF) в качестве входных данных, и сделать простые исправления автоматически на основе цветных исправлений в изображении.

Например, возьмите простейший случай: я пишу только черный на белом. Есть область, где я совершил ошибки, поэтому я рисую красный замкнутый круг (с ручкой на листе бумаги) вокруг этой области. Затем я просматриваю изображение (или, как правило, многие из них). Теперь я хотел бы, чтобы сценарий удалял каждую из этих областей во всех изображениях, поэтому мои ошибки исчезают в полученном изображении.

Любые идеи, как реализовать это в среде Linux, например. с Image Magick?


Похоже, что Gimp со сценарием-fu может стать для него способом, он должен быть достаточно сильным. Может ли кто-нибудь дать мне подсказку, указав, что приведенный выше пример будет похож на скрипт-фу?

+0

Также полезно для меня: какое программное обеспечение для создания пиксельных изображений linux очень доступно для сценариев и поддерживает сложные операции, такие как маски с выбором цвета и т. Д. – highsciguy

+1

Поскольку вы уже вручную отметили то, что хотите изменить, подумали ли вы о нетехнических вещах, таких как белая лента (http://www.amazon.com/Wite-Out-Correction-1-Line-Dispenser-BICWOTAPP11/dp/B003V8Q7HS) или используя неотражающие пустые ярлыки или наклейки, чтобы скрыть ошибки? –

+0

Я сложный человек, и это решение слишком просто для меня;) Нет, серьезно: я знаю об этом решении, но у меня есть еще несколько идей, которые невозможно реализовать таким образом, если я хочу создать красивый рукописный текст. Например. Я хотел бы иметь возможность выделить текст таким же образом, изменив его цвет. Или нарисуйте прямоугольную рамку вокруг текста. Эти вещи занимают много времени, если я хочу сделать это вручную. – highsciguy

ответ

0

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

Вы можете обнаружить, что любое программное обеспечение/скрипт, который вы найдете, не будет работать так, как вам хотелось бы. Похоже, что многие из этих изменений - это вещи, которые нужно увидеть человеческим глазом. Возможно, вы могли бы нанять личного помощника, чтобы внести эти исправления для вас. :)

2

Я думаю в решении, основанном на ImageMagick. Мы должны были бы следующие шаги:

  1. Найти цвет, используемый для рисования в отсканированном документе (в настоящее время на, называемый целевой цвет);
  2. Найти x и y координаты на картинке;
  3. Передайте эту позицию в качестве семени для алгоритма заполнения наводнений.

Мы могли бы использовать следующий скрипт, основанный на функциях ImageMagick:

  1. вывода всех уникальных цветов в изображении. Это будет использоваться для определения компонентов RGB целевого цвета (command source).

    convert <image> -unique-colors -depth 8 txt:- > output.txt 
    
  2. Выходные координаты каждого цвета в текстовом файле:

    convert <image> txt:- > coord.txt 
    
  3. Найти x и y координаты целевого цвета (command source).Предположим, что целевой цвет, полученный на стадии 1 был красный:

    grep red coord.txt 
    
  4. Наконец, используйте x и y в качестве затравки для floodfill заменить область окружности нужного цвета (command source). В этом случае, я использовал white стереть область:

    convert <image> -fill white -fuzz 13% \ 
         -draw 'color <x>,<y> floodfill' <image_floodfill_output> 
    

Параметр -fuzz избежит, что цвета, которые были первоначально red и стали испорчены из-за шума и заменяется.

Этот tutorial дает дополнительную информацию о функции floodfill, например, как заменить цвета краев.

+0

+1 за это предложение. Было бы даже лучше, если бы вы разработали его немного больше ... :-) –

+0

@ KurtPfeifle спасибо! :-) Какие моменты нужно улучшить? Может быть, пример использования и дальнейшее объяснение используемых команд? – Yamaneko

+0

Точно :-) И может даже некоторые изображения и текстовый файл (извлечение), которые демонстрируют эффекты команд, которые вы используете ... –

 Смежные вопросы

  • Нет связанных вопросов^_^