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

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

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

Подробнее

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

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

Подробнее

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

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

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

Подробнее

Бинаризация методом Оцу в dlib

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

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

Подробнее

Перевод текста в команды FALSE

После публикации статьи про FALSE мне пришла в голову интересная, хоть и бесполезная идея — реализация программы, которая составляет другие программы. Все было бы нормально, но в этот раз эта статья будет точно соответствовать одному из разделов нашего блога — разделу «Невменяемое программирование».

Если вы хотите немного причаститься к ненормальному программированию, то добро пожаловать в этут статью !

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

Подробнее

В дебрях эзотерики

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

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

Подробнее

Создаем виртуальный Forth-процессор

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

Новый импульс я получил после того, как наткнулся на нечто интересное и действительно захватывающее… Читать далее →

Подробнее

Преобразование карт окружения при помощи dlib

Разрабатывая 3D-движок для D, я столкнулся с интересной задачей – преобразованием равнопромежуточной карты окружения (equirectangular environment map) в кубическую карту (cube map).

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

Подробнее

Вставка сообщений в изображения

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

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

И тут встал интересный вопрос: как доказать всем (в том числе, и судебным работникам) свое авторство или некоторое участие в работе относительно некоторого произведения?

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

Подробнее