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

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

Подробнее

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

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

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

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

Читать далее →

Подробнее

Формула Таппера в D [посредством dlib]

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

Эксперимент будет, как обычно, с математической графикой, и на этот раз познакомлю вас с самореферентной формулой, которая называется формулой Таппера.

Читать далее →

Подробнее

Множество Мандельброта в dlib

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

По этой причине, я решил вернуться еще раз к построению данного множества, но уже без помощи DGui.

Читать далее →

Подробнее

Эксперименты с квадратными паттернами в dlib

Почитывая раздел Хабрахабра под названием «Ненормальное программирование» я наткнулся на интересную статью про узор, который как я понял, порождается определенными закономерностями во фрактале Герасимова.

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

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

Читать далее →

Подробнее

Добавляем итерируемые системы функций в dlib

Сегодня я расскажу о том, как я осуществил перенос наработок из проекта нашей библиотеки для обработки изображений Raster and Image Processor (RIP) в библиотеку «швейцарский нож для D» dlib. В статье я немного расскажу о том, как при минимуме усилий и использованной инфраструктуре проекта rip, мне удалось подарить вторую жизнь старой идее реализации Итерируемой Системы Функций (ИФС) и перенести ее со старой dgui (об этом я уже как-то писал) в новую среду.

Читать далее →

Подробнее

Соляризация изображения в dlib

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

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

Читать далее →

Подробнее

Экспериментируем с битовыми плоскостями. Часть II

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

Читать далее →

Подробнее

Экспериментируем с битовыми плоскостями. Часть I

Работая над нашей библиотекой обработки изображений rip, я столкнулся с одной очень интересной и забавной вещью, связанной непосредственно с самим устройством изображения, и крайне удивился тому, что лишь немногие авторы литературы по цифровой обработке изображений упоминают данную тему. Читать далее →

Подробнее

Музыкальный D: синтезатор в 100 строк

Библиотека dlib предоставляет базовые инструменты для работы с аудиоданными, которые позволяют написать синтезатор с сохранением полученных звуков в WAV. В этой статье я покажу, как с их помощью сгенерировать знаменитую мелодию «Popcorn» Гершона Кингсли, используя для этого всего три функции, умещающиеся в 100 строк кода.

Читать далее →

Подробнее