Акварелизация изображения с помощью dlib

Сегодня мы покажем вам небольшой интересный эксперимент с нашей любимой тематикой — обработкой изображений своими руками. Целью нашего скромного эксперимента будет получить из картинки ее копию, но сделанную так, как будто сама картинка нарисована акварельной краской. Эксперимент хоть и простой, но не со всеми изображениями работает так, как ожидается, поскольку не во всех изображениях встречаются качественные переходы между цветами.

Для того, чтобы сделать эффект акварелизации потребуются только D, dlib, подходящее изображение и огромное желание поработать с картинками собственными руками. Тех, кому интересно добро пожаловать под кат этой статьи.

Читать далее

Просматриваем изображения в терминале с помощью dlib

В данной статье мы продвинем раскрашивание текста в терминале на новый уровень — с помощью обычных текстовых символов, а также дизеринга в новой реализации можно сделать нечто более интересное. И возможно даже в чем-то и полезное. Мы будем просматривать изображения помощью терминала Linux.

Читать далее

Реализуем дизеринг в dlib

Наверное, некоторые из вас, дорогие читатели, видели то, как ранее отображались картинки на экранах старых мониторов — при довольно скромной цветовой палитре, с помощью одного простого алгоритма, удавалось добиться глубины цвета, и при этом не задействуя значительные ресурсы процессора.

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

Читать далее

Пиксельные войны: как создать свой Pixelflut-сервер на D

В этой статье, мы покажем вам, как можно в домашних условиях развязать настоящую пиксельную войну, используя компилятор D, домашнюю локальную сеть и креативную фантазию при сильном избытке досуга. Все, что нам потребуется — один свободный компьютер, который не жалко использовать как простой сервер, а также устройства, которые к нему подключаются и несколько человек, чтобы было веселее.

Если вам стало интересно, то добро пожаловать в эту занимательную статью.

Читать далее

Папоротник Барнсли для Rosetta Code

Данный пост практически не содержит ничего нового или того, что мы не делали раньше. Этот пост носит скорее агитационный характер и содержит весьма простой пример, про который мы рассказывали уже дважды. Команда блога настоятельно рекомендует ознакомится с данным постом всем, кого интересует дальнейшее распространение информации по D и кто обладает достаточным опытом для решения на нем задач; также к прочтению приглашаются все те, кому просто интересно.

Читать далее

Конвертация PNG в файлы Portable Any Map и Farbfeld

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

Читать далее

Эквализация гистограмм

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

Читать далее

Добавляем текст на изображения в dlib

Когда я начал использовать dlib, то столкнулся с необходимостью вставки в изображение некоторого текста. Оказалось, что встроенной в dlib процедуры, которая рисует текст на картинке нет, а она была бы полезна в некоторых практических приложениях: отрисовке графиков функций с подписями осей, визуализации текстовой информации, подготовке диаграмм и иной инфографики. Я думал, с течением времени в dlib появится нечто вроде drawText или drawString, но постепенно пришел к выводу, что реализация такого примитива выходит за рамки самой библиотеки и сопряжена с немалыми трудностями, особенно, если учесть, что существует огромное количество шрифтов и сложности с их рендерингом.

Казалось бы, о добавлении каких-либо надписей с помощью dlib можно забыть, но я пошел обходным путём…

Читать далее

Отрисовка и закраска многоугольников в dlib

Данный простой рецепт публикуется как один из исторических материалов, который является сейчас частью проекта R.I.P и поможет вам справится с отрисовкой многоугольников (и не только правильных), а также с задачей их закраски. Читать далее

Дискретное вейвлет-преобразование в dlib

В нескольких статьях нашего блога уже затрагивалась тема различной цифровой обработки изображений, но, в основном в них мы касались вопросов явной трансформации изображений (перевод в оттенки серого, фильтрация, применение фильтров и некоторые другие операции) и никак не обращались к способам изменения избыточности изображений. Под избыточностью, в данном случае, понимается некая абстрактная мера, связанная с количеством информации, которое содержится в некоем изображении. Обычно, когда упоминаются выражения наподобии «способ изменения избыточности» или «метод уменьшения информационной энтропии», то речь идет об алгоритмах сжатия или алгоритмах эффективного представления неких данных.

Конечно, я бы хотел рассмотреть здесь методы сжатия изображений, но больше всего мне бы хотелось продемонстрировать суть подобных приемов, обращаясь непосредственно к внутреннему устройству и самым базовым их принципам, но, тематика сжатия изображений слишком обширна для данного блога.

Поэтому, я хотел бы рассказать сегодня о дискретном вейвлет-преобразовании, а точнее, об одной из самых известных его версий — дискретном преобразовании Хаара.

Читать далее