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

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

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

Подробнее

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

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

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

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

Подробнее

Отрисовка и закраска многоугольников в 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

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

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

Подробнее