Pull to refresh

Comments 28

Монументально.
Не было макросов в Paint.NET, но таки выкрутился. Надо бы протестировать у себя это все.
Спасибо.
Мне такой способ кажется менее удобным и очевидным, чем, например, Gimp, для которого можно писать скрипты на:
  • scheme (поддержка встроена)
  • python
  • perl
  • lua

И тоже абсолютно бесплатно.
Я и не спорю. Просто привык к Paint.NET, ну и с Sikuli хотелось разобраться, just for fun.
Кстати, еще есть программа phatch — позволяет делать то же самое, только в гораздо более наглядном виде и без знания скриптовых языков. Просто выбирается последовательность фильтров с параметрами. Тоже проще и нагляднее.

Скрипты, зависящие от темы ОС, ждущие 7 секунд, чтобы файл «гарантированно» сохранился, и прочие хаки, не лучший пример для демонстрации, по-моему. Напоминает карточный домик — малейшее изменение в окружении, и придется долго сидеть выискивая ошибку. И трудоемкость создания первой версии скрипта тоже кажется более высокой, чем в phatch.
Отрицательный результат — тоже результат. Я примерно об этом в выводах и написал.

В доках phatch'а не обнаружил работу со слоями. Без них в данном случае он бесполезен.
есть пример алгоритма, как очищать от шума, используя Gimp?
Снимаю шляпу — действительно круто. Оказывается от Sikuli даже на нынешнем этапе развития есть практическая польза. Но 1 минута 41 секунда на одно изображение — это плачевно.

Надо будет показать людям, берущим мои конспекты на фото сессии =)
Спасибо за способ очистки текста от шума. Как раз надо распечатать отфотканую книгу — возьмем на вооружение. Однако, да, если бы это скриптом под Gimp — было бы интереснее.
Поставлю Вам плюсик в карму если тоже самое сделаете для Gimp :)
UFO landed and left these words here
UFO landed and left these words here

Как-то так. Пришлось подбирать параметры:
DoMedian(«45», «50»)
DoLevels(«239», «220», «1»)
UFO landed and left these words here
У Sikuli тоже есть функционал для тестирования, просто это за рамки статьи выходит.
Хех. Что характерно, разработчики обоих программ на Маках сидят :)
Интересная методика, но слишком всё сложно.
Я как-то написал маленький скрипт, который делает то же самое.
Использовал свободную графическую библиотеку GD2.
Если интересно — поищу и выложу.
В целом, логика та же самая.
Для каждой точки вычисляем среднюю яркость в квадрате, окружающем эту точку. Если яркость данной точки больше (с учётом смещения), в новой картинке делаем её белой. Иначе – чёрной.

В моём случае с этой же целью используется фильтр Median и смешивание слоёв. Вроде бы Ваш вариант должен быть быстрее (это я так, осторожно, пока не занялся собственно сравнением), но результат довольно грубый. Сохраняя полутона можно заметно улучшить читаемость (и заново изобрести фильтр Levels...)

Меня больше пример впечатлил.
По моему алгоритму не очень хороший результат получается. Внизу слева и справа не видно ничего. Фильтр Median эффективен в случае импульсных «помех» и на размытом тексте может не сработать как ожидается.

Приличный результат смог получить, несколько доработав процесс:

Но при этом общее время обработки увеличивается раза в полтора.
автору спасибо за топик, считаю статью в высшей степени полезной. добавил в избранное.
convert imageIn.png ( +clone -gaussian-blur 50x50 ) -compose difference -composite -negate -level 80%,97% imageOut.png
Уточните, пожалуйста, это под что и куда?
Операции с графикой вообще несколько ресурсоёмкие.
Собственно, основное время тут тратится на блюр/медиан, что с imagemagick'ом, что c пайнтом, что с фотошопом.
Можно попробовать сравнить на этой задаче imagemagick, ps, paint, gimp и ещё что-нить.
Мой плюс за красивое решение.

Если энтузиазм не пропадёт, попробую сравнить (это к коментарию).
Рискну предположить, что PS окажется быстрее всего )
Only those users with full accounts are able to leave comments. Log in, please.