RMagick конвертация изображений - PullRequest
0 голосов
/ 14 января 2019

Во время взлома простого проекта я застрял с проблемой RMagick на один день. Так как я очень новичок в RMagick нужны предложения по этому вопросу.

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

Пример изображение , загруженное пользователем, выглядит следующим образом.

Я пытался преобразовать изображение в greyscale, как показано ниже

 img.quantize(2, GRAYColorspace, false)

Но у которого так много шума при преобразовании ( image ). Может ли кто-нибудь предложить, как я могу выбрать только раздел / прямоугольник, который содержит актуальную информацию из загруженного изображения?

Ниже приведены методы, которыми я пытаюсь испачкать руки.

  • get_pixels
  • find_similar_region
  • adaptive_threshold

1 Ответ

0 голосов
/ 14 января 2019

В командной строке ImageMagick вы можете использовать -negate (инвертировать цвета) и -lat (порог локальной области), чтобы преобразовать это в двоичный файл (черный / белый), что может быть больше, чем вы хотите. В RMagick должны быть эквивалентные команды.

Входной сигнал: enter image description here

convert t2.jpg -negate -lat 20x20+10% -negate result.png


enter image description here

Сложение:

Обратите внимание, на полученном изображении выше есть несколько темных пятен. Вам нужно отфильтровать те, которые используют -connected-components, прежде чем вы сможете обрезать изображение до черного ящика.

convert t2.jpg -negate -lat 20x20+10% -negate -type bilevel \
-define connected-components:area-threshold=10 \
-define connected-components:mean-color=true \
-connected-components 4 \
-bordercolor white -border 1x1 \
-fuzz 15% -trim +repage \
result.png


enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...