84
Министерство образования и науки Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Уральский федеральный университет имени первого Президента России Б.Н.Ельцина» Физико-технологический институт Кафедра вычислительной техники ДОПУСТИТЬ К ЗАЩИТЕ Зав. кафедрой вычислительной техники ______________ С.Л. Гольдштейн (подпись) «______»_________________ _2015 г. РАЗРАБОТКА СИСТЕМЫ ВИЗУАЛИЗАЦИИ ЗВУКОВОГО ПОЛЯ С ПРИМЕНЕНИЕМ КАМЕРЫ И МИКРОФОНА ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА БАКАЛАВРА Пояснительная записка 09.03.01 46 ПЗ Руководитель, доц., к. т. н. ____________ Г. Б. Захарова

Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Embed Size (px)

Citation preview

Page 1: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Министерство образования и науки Российской ФедерацииФедеральное государственное автономное образовательное учреждение

высшего профессионального образования«Уральский федеральный университет имени первого Президента России

Б.Н.Ельцина»

Физико-технологический институт

Кафедра вычислительной техники

ДОПУСТИТЬ К ЗАЩИТЕ

Зав. кафедрой вычислительной техники

______________ С.Л. Гольдштейн (подпись)

«______»__________________2015 г.

РАЗРАБОТКА СИСТЕМЫ ВИЗУАЛИЗАЦИИ ЗВУКОВОГО ПОЛЯ С ПРИМЕНЕНИЕМ КАМЕРЫ И МИКРОФОНА

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

БАКАЛАВРА

Пояснительная записка

09.03.01 46 ПЗ

Руководитель, доц., к. т. н. ____________ Г. Б. Захарова

Консультант, н.с. ИММ УрО РАН ____________ Д.С. Перевалов

Нормоконтролер, доц., к.т.н. ____________ В.В. Ковалев

Студент гр. Фт-410802 ____________ С.И. Шляхова

Екатеринбург 2015

Page 2: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Реферат

Пояснительная записка 47 страниц, 13 рисунков, 4 таблицы, 15

источников, 2 приложения.

Актуальность работы. В настоящее время существует достаточно

большое количество способов визуализации звукового поля (ВЗП), которые

применяются для изучения звуковых полей сложной формы для целей

дефектоскопии и медицинской диагностики, а также для визуализации

акустических изображений предметов. Одним из важнейших направлений

развития систем ВЗП является изучение распространения звука в помещении

с целью создания оптимального его пути распространения (выбор положения

микрофона и колонок в зале кинотеатра, клуба или любого другого

помещения).

Цель исследования – создание технологии ВЗП в режиме реального

времени с применением микрофона и камеры, а также создания

программного продукта по этой технологии.

Для достижения поставленной цели нужно решить следующие задачи:

проанализировать существующие в настоящее время системы

визуализации звуковых полей;

произвести отбор аналогов из существующих систем ВЗП;

разработать пакет моделей на создание программного продукта;

разработать ТЗ для программного продукта;

реализовать и протестировать полученный программный

продукт.

2

Page 3: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Содержание

Нормативные ссылки..............................................................................................5

Обозначения и сокращения....................................................................................6

Введение...................................................................................................................7

1 Проблематика визуализации звукового поля................................................ 9

1.1 Направления поиска информации и ключевые слова.............................9

1.2 Алгоритмы поиска информации.............................................................15

1.3 Литературно – аналитический обзор......................................................19

1.4 Определение аналогов..............................................................................19

1.4.1 Краткая характеристика аналогов метода ВЗП...............................19

1.4.2 Критерии оценки аналогов метода ВЗП...........................................24

1.5 Выбор и обоснование программного продукта.....................................26

1.5.1 Краткая характеристика найденных программных продуктов......26

1.5.2 Критерии оценки апрограммного продукта.....................................27

1.6 Цели и задачи............................................................................................28

1.7 Результаты и выводы по 1 главе..............................................................29

2 Моделирование системы ВЗП.......................................................................30

2.1 Моделирование предлагаемых решений................................................30

2.1.1 Системно-структурная модель..........................................................30

2.1.2 Алгоритмическая модель...................................................................31

2.2 Пакет концептуальных моделей..............................................................31

2.2.1 Общая концептуальная модель.........................................................32

2.2.2 Базово – уровневая концептуальная модель....................................32

2.2.3 Модификационная концептуальная модель....................................33

2.3 Результаты и выводы по главе 2..............................................................33

3

Page 4: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

3 Проектирование системы ВЗП.......................................................................35

3.1 Внешнее проектирование.........................................................................35

3.2 Внутреннее проектирование....................................................................35

3.2.1 Выбор парадигмы программирования.............................................35

3.2.2 Выбор средств программирования...................................................36

3.2.3 Эскизный проект................................................................................36

3.3 Результаты и выводы по главе 3..............................................................37

4 Инженерная реализация ВЗП.........................................................................38

4.1 Общее описание........................................................................................38

4.2 Требования к программному обеспечению и характеристикам

конфигурации компьютера...............................................................................38

4.3 Пример работы программы......................................................................39

4.4 Результаты и выводы по главе 4..............................................................43

Заключение............................................................................................................45

Список использованных источников..................................................................46

Приложение А. Техническое задание.................................................................48

Приложение Б. Программный код системы ВЗП...............................................55

Нормативные ссылки

4

Page 5: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

ГОСТ 19.504-79 ЕСПД Руководство программиста

ГОСТ 19.701-90 ЕСПД Схемы алгоритмов, программ,

данных и систем

ГОСТ 34.201-89 ИТ. ЕКСАС Виды, комплектность и обозначение

документов при создании

автоматизированных систем

ГОСТ 34.601-90 ИТ. ЕКСАС Автоматизированные системы.

Стадии создания

ГОСТ 34.602-89 ИТ. ЕКСАС Техническое задание на создание

автоматизированной системы

ГОСТ Р ИСО/МЭК 9294-93 ИТ Руководство по управлению

документированием

программного обеспечения

ГОСТ Р ИСО/МЭК 12119-2000 ИТ Процессы жизненного цикла

программных средств

ГОСТ Р ИСО/МЭК 12207-99 ИТ Пакеты программ. Требования к

качеству и тестированию

Обозначения и сокращения

ПЗ Пояснительная записка

5

Page 6: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

ЗП Звуковое поле

ВЗП Визуализация звукового поля

ТЗ Техническое задание

Введение

Звук – это то, что сопровождает нас на протяжении всей жизни. Мало

что является настолько неотъемлемым в жизни человека. Именно поэтому

его так много и тщательно изучают. И, казалось бы, что в наше время сделать

6

Page 7: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

что-то новое в этой сфере уже невозможно, но и по сей день ученые и

обычные исследователи строят теории и концепции.

В настоящее время существует достаточно большое количество

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

звуковых полей сложной формы для целей дефектоскопии и медицинской

диагностики, а также для визуализации акустических изображений

предметов, которые получены либо с помощью акустических фокусирующих

систем, интеллектуальных информационных систем и т.д. Так же получение

подробной информации о такой характеристике звука, как частота, позволит

избежать крупных потерь в высокоточной химической промышленности,

когда нельзя позволить веществам смешиваться друг с другом. А для

получения характеристик о частоте звука нужно лишь заменить микрофон на

пьезоприёмник низких частот. Именно поэтому технология визуализации

звука с помощью микрофона и камеры так важна на данный момент.

Если рассмотреть систему ВЗП стоячих волн, то мы обнаружим только

опасный способ при помощи трубки Рубенса. Но если бы существовал

способ ВЗП при помощи программного продукта, у каждого школьника была

бы возможность провести этот интересный эксперимент.

Последним и самым перспективным направлением развития систем

ВЗП является изучение распространения звука в помещении с целью

создания оптимального его пути распространения (выбор положения

микрофона и колонок в зале кинотеатра, клуба или любого другого

помещения). Автоматизация этого процесса значительно бы помогла

звуковым операторам в их работе.

Данная выпускная квалификационная работа посвящена как раз

созданию такой системы ВЗП, созданию технологии ВЗП с помощью камеры

и микрофона, которая сможет быть применена для построения карты

громкости в помещении в режиме реального времени.

7

Page 8: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

1 Проблематика визуализации звукового поля

1.1 Направления поиска информации и ключевые слова

Для поиска информации была выбрана тема «Разработка системы

визуализации звукового поля с применением камеры и микрофона».

Ключевыми словами для поиска стали:

8

Page 9: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Звук — физическое явление, представляющее собой распространение в

виде упругих волн механических колебаний в твёрдой, жидкой или

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

рассматриваемые в связи с тем, как они воспринимаются органами чувств

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

спектром частот. Обычный человек способен слышать звуковые колебания в

диапазоне частот от 16—20 Гц до 15—20 кГц. Звук ниже диапазона

слышимости человека называют инфразвуком; выше: до 1 ГГц, —

ультразвуком, от 1 ГГц — гиперзвуком. Громкость звука сложным образом

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

высота звука — не только от частоты, но и от величины звукового

давления[1].

Частота звука - количество колебаний воздуха в секунду. Частота

измеряется в Герцах (Гц): 1 Гц = 1 колебание в секунду; или килогерцах

(кГц): 1кГц = 1000 Гц.

Длина волны - отрезок на оси распространения волны, в котором

умещается полный цикл (период) изменения плотности воздуха. Частота

волны обратно пропорциональна длине волны. Чем больше частота звука,

тем меньше длина волны и наоборот. Длину волны очень легко вычислить по

формуле l=C/f, где C - скорость звука (340 м/с), а f - частота звуковых

колебаний. Например, волна, имеющая частоту 100 Гц, имеет длину

340/100=3.4 м.

Амплитуда звуковой волны - половина разницы между самым

высоким и самым низким значением плотности. На графике амплитуде будет

соответствовать разница между самой высокой (или низкой) точкой волны и

горизонтальной осью графика.

Для описания относительных временных свойств двух звуковых волн

(или разных частей одной волны) вводится понятие фазы звуковой волны

(см. рисунок 1.1). На первом графике показаны две волны, которые

полностью совпадают друг с другом. В этом случае говорят, что волны

9

Page 10: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

находятся в фазе. На третьем графике в том месте, где у одной волны

находится область высокой плотности, у другой - область низкой плотности.

В этом случае говорят, что волны находятся в противофазе. При этом, если

волны одинаковые, происходит их взаимное уничтожение (в природе это

бывает крайне редко, чаще противофазные волны при наложении сильно

искажают звук). Средний график показывает некое промежуточное

положение. В этом случае говорят, что фаза одной волны сдвинута

относительно другой.

а б в

Рисунок 1.1 – Графики фаз звуковой волны

Звуковое поле — область пространства, в которой распространяются

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

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

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

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

звуковое поле характеризуется плотностью звуковой энергии (энергией

колебательного процесса, приходящейся на единицу объема) и

интенсивностью звука [2].

Акустическое поле - это область какой-либо упругой поверхности

которая выполняет роль передачи акустических волн, и характеризуется

только по двум параметрам. А именно: звуковым давлением и акустическим

сопротивлением. Звуковое давление измеряется в единицах Паскалях, а

акустическое сопротивление - Паскаль сантиметр площади [3].

10

Page 11: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Звуковое давление - это показатель, который измеряется в разнице

давления в среде распространения волн и обычным атмосферным давлением.

Акустическое сопротивление - это отношение звукового давления к

скорости колебания микроскопических частиц среды.

Акустическое поле имеет также характеристики, у которых есть две

позиции, а именно интенсивность и мощность звука. С интенсивностью и

мощностью звука, здесь все понятно. Зато есть одна характеристика, которая

играет важную роль при формировании акустического поля - это

направленность звука излучения. Есть угловое пространственное

распространение давления создаваемого вокруг источника звукового

давления.

Визуализация звуковых полей - методы получения видимой картины

распределения величин, характеризующих звуковое поле. ВЗП применяется

для изучения полей сложной формы, для целей дефектоскопии и

медицинской диагностики, а также для визуализации акустических

изображений предметов, получаемых либо с помощью акустических

фокусирующих систем, либо методами акустической голографии [4].

Колебательное смещение частиц (акустическое смещение), смещение

x бесконечно малой части среды по отношению к среде в целом,

обусловленное прохождением звуковой волны. Направление колебательного

смещения может совпадать или не совпадать с направлением

распространения волны в зависимости от типа волны. При всех достижимых

интенсивностях звука Колебательное смещение x < l, где l — длина звуковой

волны[5].

Пьезоприёмник - пьезоэлектрический преобразователь,

предназначенный для восприятия акустических сигналов и преобразования

их в электрические с целью измерения, передачи, воспроизведения, записи

или анализа. Статические пьезоприёмники применяют, например, в

тензометрии для регистрации и измерения статических величин - давления,

силы или смещения. Конструктивно такие пьезоприёмники могут быть

11

Page 12: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

выполнены в различных вариантах в зависимости от величины

воспринимаемого сигнала и требуемого выходного напряжения. Резонансные

пьезоприёмники широко используются в акустике, гидроакустике,

дефектоскопии и др. Отличаются повышенной чувствительностью, однако их

рабочая полоса частот ограничена из-за быстрого падения чувствительности

по обе стороны относительно резонансной частоты. Широкополосные

(нерезонансные) пьезоприёмники служат для неискажённого приёма

сложных сигналов (например, импульсных), в спектре которых содержится

большое число составляющих. Подразделяются на микрофоны (для приёма в

воздушной среде), гидрофоны (в жидкости) и пьезоприёмники для твёрдых

тел. В качестве микрофонов применяют пьезоприёмники, выполненные на

основе двойных (биморфных) пьезоэлементов с использованием изгибных

колебаний и металлических резонаторов для согласования со средой.

Гидрофонами служат пьезоприёмники, выполненные как на основе

одиночных пьезоэлементов, так и систем пьезоэлементов, соединённых

между собой электрически и механически. В твёрдых телах для приёма

колебаний, вызванных волнами различных типов - объёмными (продольными

или сдвиговыми), поверхностными,- в большинстве случаев применяют

контактные пьезоприёмники. Такие пьезоприёмники предназначены для

измерения амплитуды смещений поверхности (виброметры), колебательные

скорости (велосиметры), ускорения (акселерометры). Минимальные

амплитуды смещений, измеряемые широкополосными пьезоприёмниками,

ограничены шумами и обычно составляют 10-10 мкм. Пьезоприёмники для

твёрдых тел реагируют в основном на определённый тип волн, для чего

используют пластины из пьезоэлектрических кристаллов специальных срезов

(например, для продольных волн - Х-срез кварца, 2-срез ниобата лития; для

сдвиговых - У-срез кварца), или на определённую поляризацию пьезо-

керамических преобразователей, или на особую конфигурацию электродов

на пьезоэлементе (например, для приёма поверхностных волн - встречно-

штыревые преобразователи) [6].

12

Page 13: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Акустические течения (акустический, или звуковой, ветер),

регулярные течения среды в звуковое поле большой интенсивности. Могут

возникать как в свободном неоднородном звуковом поле, так и (особенно)

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

Акустические течения всегда имеют вихревой характер и обычно возникают

в результате того, что количество движения, связанное с колебаниями частиц

среды в волне и переносимое ею, при поглощении волны передаётся среде,

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

течений пропорциональна коэффициенту поглощения звука и его

интенсивности, но обычно не превосходит величины колебательной скорости

частиц в звуковой волне. После включения источника звука акустическое

течение устанавливается не сразу, а «разгоняется» постепенно до тех пор,

пока торможение за счёт вязкости среды не скомпенсирует увеличение его

скорости под действием звука [7].

Диск Рэлея - звукометрическое устройство, основанное на развороте

легкого диска перпендикулярно направлению распространения звуковых

волн. Принцип действия диска Рэлея основан на возникновении в поле

звуковой волны вращающего момента D, действующего на плоский предмет

(диск, пластинку), подвешенный на тонкой закручивающейся нити

D = (2¤3)ЧU 2ЧrЧr3Чsin2a,

где r - радиус диска;

r - плотность окружающей среды;

U - колебательная скорость частиц среды;

а - угол между нормалью к поверхности диска и направлением

распространения звука [8].

Акустическая кавитация - явление образования в жидкости полостей

заполненных газом, паром или их смесью (кавитационные пузырьки или

каверны). Кавитационные пузырьки образуются в тех местах, где давление в

жидкости становится ниже критического значения Рcr (в реальной жидксти

13

Page 14: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Рcr приближенно равно давлению насыщенного пара этой жидкости при

данной температуре). Акустическая кавитация, в отличие от

гидродинамической (обусловленной понижением давления вследствие

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

возникает при прохождении звуковых волн высокой интенсивности и

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

величину. Кавитационные пузырьки возникают во время полупериода

разрежения на так называемых кавитационных зародышах, которыми чаще

всего являются газовые включения, содержащиеся в жидкости и на

колеблющейся поверхности акустического излучателя. Поэтому

кавитационный порог повышается по мере снижения содержания газа в

жидкости, при увеличении гидростатического давления, после “обжатия”

газа в жидкости (~108 Па) гидростатическим давлением и при охлаждении

жидкости, а кроме того, при увеличении частоты звука и при сокращении

продолжительности озвучивания. Порог для бегущей акустической волны

выше, чем для стоячей. Пузырьки захлопываются во время полупериодов

сжатия, создавая кратковременные (длительностью ~10-6 с) импульсы

давления (до 108 Па и выше), способные разрушить даже весьма прочные

материалы. Такое разрушение имеет место на поверхности мощных

акустических излучателей, работающих в жидкости. При температуре

жидкости, близкой к точке кипения, доминирующий вклад в образование

пузырьков вносит испарение жидкости; такие процессы наблюдаются,

например, при возникновении кавитации в криогенных жидкостях. Звуковое

поле в жидкости, вызывающее кавитацию, обычно неоднородно по

пространству. Это приводит к тому, что наряду с пульсациями, пузырек

движется поступательно. В стоячей ультразвуковой волне направление

движения пузырька зависит от соотношения между его радиусом Rрез

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

ультразвуковой волны. При размере пузырька меньше резонансного (R<Rres)

пузырьки пульсируют в фазе с колебаниями давления и мигрируют по

14

Page 15: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

направлению к пучности давления, а при (R>Rres) пузырьки перемещаются к

узлам давления. Скорость n поступательных (трансляционных) движений

пузырьков радиуса R0 при гидростатическом давлении Р0 , находящихся в

ультразвуковом поле со звуковым давлением Ра равна:

,

где h - коэффициент кинематической вязкости жидкости;

s - коэффициент поверхностного натяжения;

х i - пространственная координата (i=1,2,3…) [9].

1.2 Алгоритмы поиска информации

Поиск информации осуществлялся в трех направлениях:

интернет: использовались поисковые системы Google и

Яндекс, а также материалы из Википедии (Алгоритм поиска

представлен на рисунке 1.2);

библиотека (печатные издания): были изучены публикации

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

(Алгоритм поиска представлен на рисунке 1.3);

эксперты: был проведен опрос некоторых экспертов с кафедры

вычислительной техники (Алгоритм поиска представлен на

рисунке 1.4).

15

Page 16: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Рисунок 1.2 – Алгоритм поиска информации в интернете

16

Page 17: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Рисунок 1.3 – Алгоритм поиска информации в библиотеке

17

Page 18: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Рисунок 1.4 – Алгоритм поиска информации у экспертов

18

Page 19: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

1.3 Литературно – аналитический обзор

Поиск информации осуществлялся с помощью интернета

(использовались поисковые системы Google, Yandex) и печатных изданий

(литература, посвященная теме исследования).

1.4 Определение аналогов

В данном пункте будет проведен обзор аналогов, их критериальная

оценка и выбор прототипа.

1.4.1 Краткая характеристика аналогов метода ВЗП

В зависимости от характера используемого эффекта все методы ВЗП

можно подразделить на три группы:

методы, в которых используются основные параметры звукового

поля - звуковое давление, колебательное смещение частиц, переменная

плотность среды;

методы, основанные на квадратичных эффектах в звуковом поле -

деформация водной поверхности под действием пондеромоторных сил

звукового поля, на акустических течениях, эффекте Рэлея диска;

методы, использующие вторичные эффекты, возникающие при

распространении звуковых волн достаточной интенсивности в

жидкости,- тепловые эффекты, ускорение процессов диффузии,

дегазация жидкости, акустическая кавитация, эффекты гашения и

возбуждения люминесценции, изменения цвета красителей,

непосредственного воздействия ультразвука на фотослой и т. д.

Среди методов первой группы самый распространённый -

сканирование исследуемого поля миниатюрным приёмником звукового

давления, электрический сигнал с которогo преобразуется в световой,

например, с помощью электрической лампочки или путём модуляции

яркости луча электронной лучевой трубки. Сканирование одиночным

приёмником может быть использовано для ВЗП стоячих волн, а для

19

Page 20: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

визуализации поля бегущей волны необходим набор (мозаика) приёмников,

быстро переключаемых с помощью электронного устройства.

Методы механического сканирования обычно применяют в

диапазоне до 100 кГц; в диапазоне от 100 кГц до нескольких десятков МГц

используют электронные методы сканирования мозаики пьезоприёмников

или сплошной пьезопластины с секционированным электродом на

внутренней (тыльной) стороне. В последнем случае посредством

пьезоэффекта картина распределения звукового давления преобразуется в

соответствующий электрический потенциальный рельеф на приёмном

элементе, этот рельеф считывается электронным лучом и далее

преобразуется в видимое изображение.

Изменение плотности среды в звуковом поле и соответствующее

изменение показателя преломления для световых лучей приводят к

модуляции светового потока по фазе. Для визуализации этих фазовых

изменений применяется метод Тёплера ( Теневой метод ), в котором

используется рефракция света в среде с переменным показателем

преломления. Его модификация - метод фазового контраста, в котором

модуляция светового луча по фазе преобразуется в модуляцию по амплитуде,

дающую видимое изображение.

Частными примерами такого метода являются труба Рубенса и

огненная доска.

Труба Рубенса (Rubens’ Tube) – это отрезок трубы, перфорированный

по всей длине. Один конец подключается к маленькому динамику, а второй

— к источнику горючего газа (баллону с пропаном). Труба заполнена

горючим газом, так что просачивающийся через отверстия газ горит. Если

используется постоянная частота, то в пределах трубы может

сформироваться стоячая волна. Когда динамик включен, в трубе

формируются области повышенного и пониженного давления. Там, где

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

отверстия просачивается больше газа и высота пламени больше. Благодаря

20

Page 21: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

этому можно измерить длину волны просто измеряя рулеткой расстояние

между пиками [10].

Огненная доска (Pyro Board) в отличие от трубы Рубенса состоит не из

одной трубы с отверстиями, а представляет собой целую систему, состоящую

из 2500 горелок. Вся эта система весьма эффектно реагирует на изменение

давления вследствие влияния звуковых волн и позволяет в буквальном

смысле «видеть» звук [11].

Для неразрушающего контроля применяют методы ВЗП, основанные

на оптической голографической интерференции: на одной и той же

фотопластинке формируют две, три и т. д. оптические голограммы

колеблющегося, излучающего звук тела; на восстановленном изображении

этого тела видны интерференционные полосы, соответствующие

распределению амплитуды колебаний по его поверхности. Методы

голографической интерферометрии обладают высокой чувствительностью и

позволяют обнаруживать весьма малые (0,0002 мм) деформации. Среди

методов второй группы наиб. распространение получил метод

поверхностного рельефа, основанный на эффекте вспучивания свободной

поверхности жидкости под воздействием пондеромоторных сил

ультразвукового поля. Обусловленный ультразвуковой рельеф

визуализируют с помощью направленного на поверхность жидкости

светового пучка, используя различные методы, в т. ч. и теневой. В диапазоне

частот 0,5-5 МГц применяется голографическая модификация этого метода;

при этом в образовании рельефа поверхности участвуют интерферирующие

акустические волны - исследуемая и опорная. В этом случае получают

информацию не только об амплитудном распределении звукового поля, но и

о его фазовой структуре.

При реализации метода диска Рэлея в смеси воды и ксилола образуют

взвесь мельчайших чешуек лёгкого металла, например, алюминия, которые в

отсутствие акустического поля выглядят при освещении как матовая серая

поверхность. Переориентация частиц под действием звуковой волны создаёт

21

Page 22: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

условия для зеркального отражения света, в результате чего на сером фоне

появляется видимое изображение звукового поля.

Действие ультразвука на упорядоченную ориентацию молекул в

жидких кристаллах обусловливает акустооптические эффекты в этих

веществах, используемые для ВЗП. Эффект динамического рассеяния света

состоит в том, что при помещении в ультразвуковое поле тонкого слоя

прозрачного жидкокристаллического вещества с предварительно

ориентированными молекулами в местах с большой интенсивностью

происходит нарушение ориентации и соответственно сильное рассеяние

проходящего через слой света. Эффект двулучепреломления света в жидких

кристаллах основан на том, что вызванная колебательным смещением одной

из стеклянных пластинок, между которыми располагается слой жидких

кристаллов, переменная деформация слоя приводит к соответствующему

изменению поляризации проходящего через слой света. С помощью

поляроида это изменение поляризации преобразуется в изменение

интенсивности светового потока, пропорциональное либо звуковому

давлению, либо колебательному смещению.

К третьей группе относятся методы, основанные на тепловом

воздействии ультразвука и на его способности ускорять процессы диффузии.

Для реализации тепловых эффектов в исследуемое звуковое поле помещают

тонкий, поглощающий звук экран, неравномерное нагревание которого

можно визуализировать с помощью термо-чувствительных красок или

жидких кристаллов, нанесённых тонким слоем на поглощающий экран,

применением электронно-оптических преобразователей, чувствительных в

инфракрасной области, возбуждением или гашением люминесценции

нанесённых на экране специальных люминофоров и др. На эффекте

ускорения диффузии в ультразвуковом поле основан фотодиффузионный

метод ВЗП: предварительно засвеченная фотобумага погружается в

озвучиваемый раствор проявителя; в местах с большей интенсивностью

ультразвука диффузия проявителя ускоряется и бумага быстро чернеет.

22

Page 23: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Для ВЗП используются также кавитационная эрозия фольги,

помещённой в ультразвуковое поле, звукохимические эффекты, среди

которых наиболее нагляден эффект потемнения крахмала в растворе

йодистого калия, разлагающегося под действием ультразвуковой кавитации в

слабо подкислённой среде.

Сравнительные характеристики различных методов визуализации

звуковых полей приведены в таблице 1.1.

Таблица 1.1 – Сравнительные характеристики различных методов

визуализации звуковых полей

Первая группа

Метод ХарактеристикиI, Вт/см2 f, МГц t, c

Механическое сканирование пьезоприёмником

10-12 Практически любая

10-7- -10-8

Электронное сканирование пьезокерамической пластины

10-11 0,1-103 10-7-10-8

Пьезоэлектрический эл. -люминесцентный датчик

10-3 0, 1-2 0,1-1

Теневой метод, метод фазового контраста, дифракция света на УЗ

10-3-10-5 0,5-30 10-5-20-6

Голографическая интерферометрия 10-3-10-5 Не ограничена 10-5-20-6

Вторая группа

Метод поверхностного рельефа

- в жидкости 2*10-3 0,3-10 0,1- в твёрдом теле 3-10-5 0,5-15 0,01Акустооптические эффекты в жидких кристаллах

10-2-10-3 0,7-10 -

Метод диска Рэлея 2*10-6 0,1-1 1Третья группа

Ускорение процесса фотограф. проявления

0,1 0,1-1 10 - 100

Потемнение пластинки со слоем крахмала в йодном растворе

1 0, 1 - 1 100

Обесцвечивание красителя из-за диффузии

0,5-1 0,1-1 10-150

Возбуждение люминесценции 1 0,1-1 0,1-1Гашение люминесценции - - 0,1-1Изменение цвета термочувствительных красок

1 0,01-10 0, 1

Изменение фотоэмиссии 0,1 0,1-1 0,1

23

Page 24: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

В таблице приведено сравнение методов ВЗП с указанием пороговой

интенсивности I и частоты f (или диапазон частот), а также ориентировочные

значения минимумов времён экспозиций t.

1.4.2 Критерии оценки аналогов метода ВЗП

В результате литературного обзора были выделены методы, наиболее

часто рекомендуемые для ВЗП и проведен их сравнительный анализ по

выбранным критериям.

Критерии, выбранные для сравнения:

1 – Возможность количественной оценки;

2 – Высокая наглядность полученной картины;

3 – Простота расчетов;

4 – Универсальность (возможность использования метода для

организаций любой специфики);

5 – Динамическая оценка (возможность измерения в разные периоды

времени);

6 – Возможность отображать полученные данные в электронном

варианте;

7 – Затратность (возможность использования метода).

Был использован дихотомический метод сравнения (да-1, нет-0).

Результаты сравнения представлены в таблице 1.2.

Исходя из сравнения, видно, что наиболее подходящими являются

методы с использованием пьезоприёмников, так как согласно идее

предполагается использование микрофона для считывания сигнала частотой

1-3кГц и передача его в программу на openFrameworks для преобразования в

картинку. Так же в рамках исследования пьезоприёмник можно считать

нерасходуемым ресурсом, что ведет к значительной экономии относительно

использования прочих средств визуализации звуковых полей. И, конечно,

важным фактором является возможность его подключения к любому

компьютеру.

24

Page 25: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Таблица 1.2 - Сравнение методов ВЗП

Название метода Оценки по критериям

1 2 3 4 5 6 7 8 Суммарная оценка

Механическое сканирование пьезоприёмником

1 1 1 1 1 1 1 7

Электронное сканирование пьезокерамической пластины

1 1 1 1 1 1 0 6

Пьезоэлектрический эл. -люминесцентный датчик

1 1 1 0 1 1 0 5

Теневой метод, метод фазового контраста, дифракция света на УЗ

1 1 1 0 0 0 0 3

Голографическая интерферометрия

1 1 1 0 0 0 0 3

Метод поверхностного рельефа

1 0 0 0 0 0 0 1

- в жидкости 1 0 0 0 0 0 0 1- в твёрдом теле 1 0 0 0 0 0 0 1

Акустооптические эффекты в жидких кристаллах

1 0 0 0 0 0 0 1

Метод диска Рэлея 1 0 0 0 0 0 0 1

Ускорение процесса фотограф. проявления

0 1 0 0 0 0 0 1

Потемнение пластинки со слоем крахмала в йодном растворе

0 1 0 0 0 0 0 1

Обесцвечивание красителя из-за диффузии

0 1 0 0 0 0 0 1

Возбуждение люминесценции

0 1 0 0 0 0 0 1

Гашение люминесценции 0 1 0 0 0 0 0 1

Изменение цвета термочувствительных красок

0 1 0 0 0 0 0 1

Изменение фотоэмиссии 0 1 0 0 0 0 0 1

25

Page 26: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

1.5 Выбор и обоснование программного продукта

В силу специфики данной работы необходим программный продукт,

который позволит работать со звуком и обладать возможностью его

графической визуализации. Далее рассмотрим несколько возможных

решений данной задачи.

1.5.1 Краткая характеристика найденных программных продуктов

Processing — открытый язык программирования, основанный на Java.

Представляет собой лёгкий и быстрый инструментарий для людей, которые

хотят программировать изображения, анимацию и интерфейсы. Используется

студентами, художниками, дизайнерами, исследователями и любителями, для

изучения, прототипирования и производства. Он создан для изучения основ

компьютерного программирования в визуальном контексте и служит

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

*.pde файл визуальной оболочки Processing’а представляет собой отдельное

изображение или анимацию, и т. д.) и профессиональным производственным

инструментом.

Программа на Processing называется скетч (от англ. sketch — эскиз).

Идея состоит в том, чтобы программирование в Java-стиле было похоже на

скриптование, и взятии на вооружение процесса скриптования для быстрого

написания кода.

Перед выполнением скетча он преобразуется в код на языке Java для

выполнения в среде Windows/Linux/MacOS/Android либо в Javascript-код для

выполнения в браузере внутри Canvas.

При программировании на языке Processing все создаваемые классы

являются внутренними классами основного. Это накладывает определённые

ограничения при разработке.

26

Page 27: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

OpenFrameworks — это бесплатная платформа на основе С++ вокруг

нескольких библиотек, т.е. служит для соединения этих библиотек в единое

целое:

OpenGL — для отображения графики;

FreeImage — для манипуляций с изображениями;

Freetype — для отображения и работы со шрифтами;

rtAudio — для аудио;

Quicktime (mac или pc) — для проигрывания видео и

видеозахвата.

Ключевые концепции openFrameworks:

упрощение вещей;

возможность использовать любую из его частей независимо от

других;

предоставление прямого доступа к данным, например, к

пикселям изображения.

OpenFrameworks предназначен для «творческого кодинга» («creative

coding») и может работать под Windows, MacOS X и Linux.

Cinder – библиотека программирования, основанная на языке C++.

Обладает продвинутыми способностями визуализации. Стал общедоступным

в 2010 году и, следовательно, ещё не вполне адаптирован для удобного и

простого программирования.

Во многом схож с платформой openFrameworks. Главное отличие

состоит в том, что в Cinder используется больше системных библиотек для

повышения производительности, а openFrameworks обеспечивает лучший

контроль над лежащими в её основе библиотеками.

В отличие от Processing не требует наличия браузера, но в свою

очередь в связи с высоким качеством визуализации процессов необходимым

является наличие у компьютера высоких вычислительных мощностей.

1.5.2 Критерии оценки программного продукта

27

Page 28: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

1 – скорость обработки информации (быстрая работа на «слабых»

компьютерах);

2 – высокое качество полученного изображения;

3 – простота программирования;

4 – наличие опыта работы с программой;

5 – бесплатное скачивание.

Был использован дихотомический метод сравнения (да-1, нет-0).

Результаты сравнения представлены в таблице 1.3.

Таблица 1.3 - Оценка программных продуктов по критериям

№ Название Критерии Суммарный

показатель1 2 3 4 5

1 Processing 0 0 1 0 1 2

2 openFrameworks 1 1 1 1 1 5

3 Cinder 1 1 0 0 1 3

В качестве среды разработки выбрана платформа для творческого

программирования openFrameworks, так как практически по всем параметрам

идеально подходит для поставленной задачи. Единственным недостатком

этого ПП является «не идеальная» визуализация звукового поля, но с учётом

ограниченных вычислительных возможностей имеющегося компьютера

данный недостаток можно считать приемлемым.

1.6 Цели и задачи

Глобальная цель – создание технологии ВЗП с помощью камеры и

микрофона.

28

Page 29: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Локальная цель – написание программного продукта, который

позволит визуализировать ЗП по данным, полученным с камеры и

микрофона.

Задачи:

разработать модель системы ВЗП;

спроектировать систему ВЗП;

реализовать систему ВЗП.

1.7 Результаты и выводы по главе 1

В ходе работы были получены следующие результаты:

рассмотрены источники информации;

проведен литературный обзор, рассмотрены аналоги;

выбраны критерии для оценки аналогов;

произведен анализ аналогов, выбран прототип;

проведена критика прототипа;

поставлены цели и задачи.

Вывод: собранной информации достаточно для достижения

поставленных целей и задач.

2 Моделирование системы ВЗП29

Page 30: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

В этой главе будут рассмотрены некоторые виды моделей моего

объекта изучения. Для начала дадим определения основным понятиям.

Моделирование – исследование объектов познания на их моделях;

построение и изучение моделей реально существующих предметов,

процессов или явлений с целью получения объяснений этих явлений, а также

для предсказания явлений, интересующих исследователя [12].

Модель – это объект-заместитель объекта-оригинала, инструмент для

познания, который исследователь ставит между собой и объектом и с

помощью которого изучает некоторые свойства оригинала. В качестве

модели выступает другой материальный или мысленно представляемый

объект, замещающий в процессе исследования объект-оригинал [13].

В данной главе приведены модели, созданные в процессе изучения

предметной среды, они будут использоваться для проектирования системы

ВЗП.

2.1 Моделирование предлагаемых решений

2.1.1 Системно-структурная модель

На рисунке 2.1 представлена системно – структурная модель

предлагаемого решения.

Рисунок 2.1 – Системно – структурная модель предлагаемого решения

30

Page 31: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

2.1.2 Алгоритмическая модель

На рисунке 2.2 представлена алгоритмическая модель предлагаемого

решения.

Рисунок 2.2 – Алгоритмическая модель предлагаемого решения

2.2 Пакет концептуальных моделей

Для описания концептуальной модели используется фреймовый

формализм, а именно описание концептуальной модели в соответствии с

ролевым фреймом [14]:

31

Page 32: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

КОНЦЕПЦИЯ = <ОФС, ПРОФ, СОС, НФ, ЦФ>, (1)

где ОФС – основные функции системы;

ПРОФ – путь реализации основных функций;

СОС – структурная основа системы;

НФ – направленность функционирования;

ЦФ – цель функционирования.

2.2.1 Общая концептуальная модель

Прототип системы ВЗП по данным с пьезоприёмника.

Основные функции системы: извлечение данных с пьезоприёмника,

формирование из полученных данных карты громкости, выдача результата

технического процесса.

Структурная основа системы: блок воспроизведения звука, блок

рисования карты громкости.

Направленность функционирования: составление изображения для

визуализации звуковых полей, с помощью которой можно изучить

отдельные характеристики звука.

Цель: составление карты громкости по данным, полученным с

микрофона и камеры.

Свойства системы: возможное последующее модифицирование для

разных направлений деятельности.

2.2.2 Базово – уровневая концептуальная модель

Извлекатель данных с микрофона и камеры.

Основные функции системы: извлечение данных с микрофона,

извлечение данных с камеры, выдача результата технического процесса.

Структурная основа системы: блок воспроизведения звука, блоки

распознавания изображения микрофона и определения по черно-белой

картинке его координат, блок определения громкости.

32

Page 33: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Направленность функционирования: получение информации с камеры и

микрофона, пригодной для дальнейшего её использования.

Цель: получение данных с микрофона и камеры, пригодных для

дальнейшего использования.

Свойства системы: встраиваемость в системы ВЗП.

2.2.3 Модификационная концептуальная модель

Система ВЗП по данным с микрофона и камеры и составления из них

гарты громкости.

Основные функции системы: извлечение данных с микрофона,

извлечение данных с камеры, формирование из полученных данных карты

громкости, выдача результата технического процесса.

Структурная основа системы: блоки распознавания изображения

микрофона и определения по черно-белой картинке его координат, блок

определения громкости, блок рисования карты громкости.

Направленность функционирования: использование в залах театров

или кино для составления карты громкости помещения, с помощью которой

можно определить наилучшее расположение микрофона и колонок.

Цель: составление карты громкости по данным, полученным с

микрофона и камеры.

Свойства системы: возможное последующее модифицирование для

разных направлений деятельности. Возможность замены микрофона

более точным пьезодатчиком для получения более точных показателей

громкости или любых других характеристик звука. Возможность замены

камеры на автоматизированного робота, который будет ездить по

помещению и передавать данные своего положения и данные с микрофона в

программу.

33

Page 34: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

2.3 Результаты и выводы по главе 2

В результате проделанной работы были сделаны следующие модели:

системно – структурная;

алгоритмическая;

концептуальная.

Вывод: полученный пакет моделей дает представление о процессе и

функционировании системы ВЗП с помощью данных, полученных с

микрофона и камеры. Модели позволяют провести проектирование системы.

34

Page 35: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

3 Проектирование системы ВЗП

В данной главе рассмотрено внешнее и внутренне проектирование. Во

внешнем проектировании проведен обзор проблемы и сформулированы цели.

Во внутреннем проектировании были описаны парадигма и средства

программирования, создан эскизный проект.

3.1 Внешнее проектирование

В результате внешнего проектирования было составлено техническое

задание, которое представлено в приложении А.

3.2 Внутреннее проектирование

3.2.1 Выбор парадигмы программирования

Парадигма программирования – это совокупность идей и понятий,

определяющая стиль написания программ [15].

Существует несколько основных парадигм программирования:

процедурное;

структурное;

функциональное;

логическое;

объектно-ориентированное.

Процедурное программирование используется для вычислительных

процессов и представляет из себя последовательность инструкций.

В основе структурного программирования лежит структурное

разбиение программы и данных на блоки, которые выполняют определенные

функции.

Функциональное программирование используется для

программирования вычисления математической функции.

Логическое программирование используется для автоматического

доказательства теорем.

35

Page 36: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Объектно-ориентированное программирование основано на

концепции использования объектов и классов. Класс – это тип, который

описывает объект. Объект – это область адресного пространства в

программе, как правило, они соответствуют объектам предметной области.

Для реализации нашей программы нам подходит структурная

парадигма программирования, именно эта парадигма позволяет

структурировать данные и использовать входные данные. Также при

разработке интеллектуальных систем используются в основном структурная

и объектно-ориентированная парадигмы, поэтому наш выбор обусловлен

именно этим.

3.2.2 Выбор средств программирования

Основные требования для выбора средства программирования:

поддержка структурной парадигмы программирования;

направленность на язык программирования С++;

простой и удобный графический интерфейс.

Исходя из требований, для программирования была выбрана

платформа openFrameworks, главным достоинством которой является

относительная простота работы. OpenFrameworks - это современная

платформа программирования, использующая новейшие библиотеки для

творческого кодинга, методы визуального программирования и достаточно

большие возможности.

3.2.3 Эскизный проект

В результате анализа технического задания, требований консультанта

предметной области и моделирования, был создан эскизный проект системы

ВЗС с помощью камеры и микрофона, который представлен в виде

кортежной модели:

СВЗПСПКИМ = <ВЗ, ВИ, ХУ, Г, КГ>, (2)

где ВЗ – входной звук;

36

Page 37: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

ВИ – входное изображение;

ХУ – координаты микрофона (x,y);

Г – данные громкости, полученный микрофоном в координатах (x,y);

КГ – карта громкости.

3.3 Результаты и выводы по главе 3

В ходе выполнения проектирования на разных стадиях были получены

следующие результаты:

произведен анализ проблем;

выбрана парадигма программирования;

составлено техническое задание;

составлен эскизный проект.

На основании полученных результатов можно сделать вывод, что

информации, полученной на стадии проектирования достаточно для

инженерной реализации проекта.

37

Page 38: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

4 Инженерная реализация системы ВЗП

4.1 Общее описание

На основании результатов проектирования была создана программа,

позволяющая сократить до минимума время изучения распространения звука

в помещении. Данная программа состоит из нескольких блоков, отвечающих

за выполнение определенных функций: определение громкости по звуку,

поступающему на микрофон; распознавание микрофона на изображении,

поступающем с камеры в программу; составление по полученному с камеры

изображения черно-белой маски и дальнейшее определение по ней координат

микрофона; составление по полученным данным карты громкости.

Данная программа работает следующим образом: в программу с

камеры поступает изображение, на основе которого стоится черно-белая

маска. Далее методом поиска по ширине мы определяем самый большой

объект на изображении, а именно микрофон, и его координаты.

Одновременно с этим с микрофона в программу поступает звук, по которому

определяется его громкость. Координаты микрофона и величина громкости

сопоставляются, и на основании полученных данных генерируется

изображение, представляющее из себя карту громкости. Данные операции

проводятся моментально и практически автоматически с минимальным

участием пользователя (в нашем случае нужно только направлять микрофон,

но и этот процесс в дальнейшем можно полностью автоматизировать), что

очень упрощает его работу и затрачивает меньше времени.

4.2 Требования к программному обеспечению и

характеристикам конфигурации компьютера

Наличие установленного на компьютере обеспечения:

операционная система Windows;

«Microsoft Visual С++» любого года;

мультимедийный фреймворк QuickTime;

38

Page 39: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

платформа для творческого кодинга openFrameworks

соответствующего года.

Характеристики конфигурации компьютера пользователя для

эксплуатации ПП не должны быть ниже следующих:

процессор «Intel Pentium IV», 2 ГГц;

оперативная память 512 МБ RAM;

жёсткий диск HDD 2 GB и более;

сетевая карта;

интегрированная видеокарта 64МБ;

встроенная звуковая карта с поддержкой входа микрофона.

Непосредственно для работы технологии ВЗП необходимы:

веб-камера любой модели;

микрофон с чувствительностью не менее -58 дБ/кГц.

4.3 Пример работы программы

Приведем пример работы созданной программы для визуализации

звуковых полей.

У нас имеется программный продукт, на вход которому поступают два

потока информации: изображение с веб-камеры и звук с микрофона.

Рассмотрим последовательно блоки ПП, через которые проходит полученная

информация, и разберем принцип работы каждого из них.

На рисунке 4.2 представлена обработка исходного изображения,

полученного с веб-камеры в черно-белую маску, которая получается

следующим способом: изображение с камеры, полученное в режиме

цветовой модели RGB переводится в модель Grayscale, после чего

определяется яркость каждого пикселя и её значение сравнивается с

пороговым (см. рисунок 4.1). Если значение больше порогового, то пикселю

присваивается значение 255, если меньше – 0.

39

Page 40: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Рисунок 4.1 – Определение яркости пикселей и отображение значений,

больше пороговых

Рисунок 4.2 – Блок обработки исходного изображения в черно-белую маску

Так получается черно-белая маска, по которой методом поиска по

ширине определяется координата микрофона (см. рисунок 4.3).

Метод поиска по ширине работает следующим образом:

последовательно перебираются все пиксели изображения и вычисляется

ширина черных полос. После нахождения максимального значения, оно

делится на два. Сопоставление полученного значения по оси Oy с ранее

известным значением по оси Ox и даёт координаты положения микрофона.

40

Page 41: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Рисунок 4.3 – Блок определения координат микрофона по черно-белой маске

На рисунке 4.5 представлена обработка звука в настоящий момент

времени. Громкость представлена в процентном соотношении к максимально

возможной громкости, которую может воспринять микрофон. В координатах,

где замер не был произведен, цвет остаётся белым. Для визуализации

величины громкости было решено использовать палитру (см.рисунок 4.4)

шириной 256 пикселей, каждый из которых соответствует определенной

величине громкости.

Рисунок 4.4 – Палитра цветов для системы ВЗП

Иными словами, если цвет пикселя синий, то микрофон не получает

никакого звука. Или звук тише, чем способен воспринять, а это значит, что и

человеческое ухо не воспримет никакого сигнала в этой точке пространства.

Красным цветом отображается громкость, максимально возможная для

восприятия микрофоном и выше, а это значит, что при прослушивании звука

41

Page 42: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

с этой точки, человек может испытывать дискомфорт или даже повредить

слух.

Рисунок 4.5 – Блок обработки поступающего с микрофона звука и

определения его громкости

На рисунке 4.6 представлен результат работы блока генерации карты

громкости. Вручную передвигая микрофон, постепенно заполняем карту

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

Рисунок 4.6 – Блок генерации карты громкости

В результате получаем наглядную картину распространения звукового

поля в пространстве, по которому можно с четкостью определить положение,

например, колонок. Специалист же сможет почерпнуть из такой карты, в

42

Page 43: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

какие места в помещении микрофон ставить не следует, дабы избежать

ситуаций, когда микрофон начинает «фонить».

Для большего комфорта работы с программой были добавлены

клавиши управления:

'q' || 'й' – настройки веб камеры (см. рисунок 4.7);

'z' || 'я' – уменьшение порога яркости пикселей на 10;

'x' || 'ч' – увеличение порога яркости пикселей на 10;

'a' || 'ф' – уменьшить размер «зерна» сетки;

's' || 'ы' – увеличить размер «зерна» сетки;

'g' || 'п' – вкл/выкл сетку.

Рисунок 4.6 – Окно настройки веб-камеры

4.4 Результаты и выводы по главе 4

В ходе инженерной реализации программы ВЗП были получены

следующие результаты:

выявлены минимальные системные требования к ПО и

конфигурации компьютера;

приведен наглядный пример использования созданной программы;

43

Page 44: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

поставлены эксперименты на работоспособность системы.

Программный код программных блоков приведен в приложении Б.

На основании полученных результатов можно сделать вывод, что

достигнута цель работы – создана технология визуализации звуковых полей с

применением микрофона и камеры, а также создан программный продукт по

этой технологии.

44

Page 45: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Заключение

В процессе анализа проблематики предметной области были найдены

аналоги систем предназначенных для визуализации звуковых полей.

Моделирование привело к созданию системно-структурных,

алгоритмических и концептуальных моделей. Это позволило четко понять

функции и структуру требуемого программного продукта для визуализации

звукового поля.

В ходе выполнения проектирования на разных стадиях были получены

следующие результаты: произведен анализ проблем, выбрана парадигма

программирования, составлено техническое задание, составлен эскизный

проект на программный продукт системы визуализации звукового поля,

автоматизирующий процесс составления карты громкости помещения.

В результате инженерной реализации был создан программный

продукт почти полностью автоматизированного процесса визуализации

звуковых полей с применением камеры и микрофона, в результате

генерирующий карту громкости. Работоспособность этого программного

продукта подтверждена тестированием.

Вывод: была достигнута поставленная цель, а именно написан

программный продукт, который позволит визуализировать ЗП по данным,

полученным с камеры и микрофона.

45

Page 46: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Список использованных источников

1 И. П. Голямина. Звук. Физическая энциклопедия. Д. М. Алексеев, А. М.

Балдин, А. М. Бонч-Бруевич, А. С. Боровик-Романов, Б. К. Вайнштейн,

С. В. Вонсовский, А. В. Гапонов-Грехов, С. С. Герштейн, И. И.

Гуревич, А. А. Гусев, М. А. Ельяшевич, М. Е. Жаботинский, Д. Н.

Зубарев, Б. Б. Кадомцев, И. С. Шапиро, Д. В. Ширков; под общ. ред. А.

М. Прохорова [Текст] — М.: Советская энциклопедия, 1988—1999.

2 Большая энциклопедия Кирилла и Мефодия 2000 [Электронный

ресурс]. – М.: Кирилл и Мефодий, 2000. – 2 электрон. опт. диск

3 Мир звука. Устройства, схемы, программы для работы со звуком

[Электронный ресурс]. Режим доступа:

http://infrazvuk.info/xarakteristiki-zvukovogo-polya/

4 Визуализация звуковых полей – Энциклопедия физики и техники

[Электронный ресурс]. Режим доступа:

http://www.femto.com.ua/articles/part_1/0488.html

5 Большая советская энциклопедия : в 30 т. / гл. ред. А. М. Прохоров. —

3-е изд.[Текст] — М. : Сов. энцикл., 1969–1978. — 30 т.

6 Пьезоприёмник [Электронный ресурс]. Режим доступа:

http://www.ravnopravie.kharkov.ua/pezopriemnik.php

7 Физическая энциклопедия / Гл. ред. А.М. Прохоров [Текст] – М.: Сов.

энциклопедия, 1988. – Т. 1. – 704 с.

8 Диск Рэлея - Виртуальный фонд естественнонаучных и научно-

технических эффектов "Эффективная физика" [Электронный ресурс].

Режим доступа: http://www.effects.ru/science/271/index.htm

9 Акустическая кавитация - Виртуальный фонд естественнонаучных и

научно-технических эффектов "Эффективная физика" [Электронный

ресурс]. Режим доступа: http://www.effects.ru/science/64/index.htm

10 Труба Рубенса – Википедия [Электронный ресурс]. Режим доступа:

ru.wikipedia.org/wiki/Труба_Рубенса

46

Page 47: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

11 Две с половиной тысячи бунзеновских горелок и визуализация

звуковых волн [Электронный ресурс]. Режим доступа:

http://habrahabr.ru/post/220159/

12 Моделирование – Википедия [Электронный ресурс]. Режим доступа:

ru.wikipedia.org/wiki/Моделирование

13 Модель – Википедия [Электронный ресурс]. Режим доступа:

ru.wikipedia.org/wiki/Модель

14 Гольдштейн С. Л. Введение в системологию и системотехнику /

С. Л. Гольдштейн, Т.Я. Ткаченко [Текст] – Екатеринбург: ИРРО. 1994 –

200 с.

15 Парадигма программирования — Википедия [Электронный ресурс].

Режим доступа: ru.wikipedia.org/wiki/Парадигма_программирования.

47

Page 48: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Приложение АТехническое задание

48

Page 49: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Министерство образования и науки Российской ФедерацииФедеральное государственное автономное образовательное учреждение

высшего профессионального образования«Уральский федеральный университет имени первого Президента России

Б.Н.Ельцина»

Физико-технологический институт

Кафедра вычислительной техники

УТВЕРЖДАЮ:зав. кафедрой ВТ,

академик МАИ и РАЕН,д.т.н., профессорС.Л. Гольдштейн

“____” ________ 2014 г.

ПРОГРАММА СИСТЕМЫ ВИЗУАЛИЗАЦИИ ЗВУКОВОГО ПОЛЯ

С ПРИМЕНЕНИЕМ КАМЕРЫ И МИКРОФОНА

техническое задание

на 6 листах

действует с 1 октября 2014 г.

Согласовано:канд. тех. наук, доцент

Захарова Г.Б.“____” ________ 2014 г.

2014

49

Page 50: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

1. ОБЩИЕ СВЕДЕНИЯ

А1.1 Полное наименование разработки и ее условное обозначение

Исследование и разработка моделей, алгоритмов системы визуализации звуковых полей (ВЗП) в программе openFrameworks с применением камеры и микрофона.

А1.2 Шифр темы

Дипломная работа.

А1.3 Наименование заказчика, разработчика и пользователя

Заказчика нет. Инициативная разработка.Пользователи – специалисты в области исследования звукового поля, звукорежиссеры, звуковые операторы.Разработчик - студент группы Фт-410802 Шляхова С.И.

А1.4 Перечень документов, на основании которых создается разработка, кем и когда были утверждены эти документы

Учебный план подготовки по специальности 09.03.01: «Информатика и вычислительная техника».

А1.5 Плановые сроки начала и окончания работы

Начало - 01.10.14. Окончание - 01.06.15.

А1.6 Порядок оформления и представления заказчику результатов работ

Оформление пояснительной записки.Защита результатов работы в ГЭК.

А2 НАЗНАЧЕНИЕ И ЦЕЛИ РАЗРАБОТКИ

А2.1 Назначение

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

50

Page 51: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

её блоков для увеличения пространства, по которому составляется карта громкости.

А2.2 Цели разработки

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

А2.3 Критерии оценки достижения целей

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

координат;- улучшение условий труда звуковых операторов;- выдача результатов сопоставления полученных данных в электронном

виде.

А3 ХАРАКТЕРИСТИКА ОБЪЕКТА ИНФОРМАТИЗАЦИИ

А3.1 Краткие сведения об объекте

Объектом информатизации является визуализации звукового поля.Особенности системы ВЗП:- уникальность – нет полных аналогов;- целенаправленность применения в данной предметной области.

А3.2 Сведения об условиях эксплуатации объекта

Система ВЗП эксплуатируется 8 часов в сутки, остальное время технологический перерыв.

А4 ТРЕБОВАНИЯ К СИСТЕМЕ

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

- Возможность использовать любой ПК с любыми характеристиками.- Возможность подключения любого микрофона.- Возможность модернизации блоков программы.

51

Page 52: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

С помощью программы должны поддерживаться и контролироваться следующие параметры.

Программа рассчитывает для программы:- координаты микрофона в пространстве;- величину громкости, полученную с микрофона;- яркость пикселя для наглядного отображения на карте громкости.Для положения камеры в изучаемом пространстве:- смещение отверстия по оси Ох;- смещение отверстия по оси Оу. Далее выполняется сопоставление данных, полученных с камеры и

микрофона, и создаётся карта громкости.

А5 СОСТАВ И СОДЕРЖАНИЕ РАБОТ ПО СОЗДАНИЮ ПРОГРАММЫ

А5.1 Перечень стадий созданияЭскизное проектирование.Техно-рабочее проектирование.Опытное использование.

А5.2 Перечень этапов созданияАнализ состояния проблемы.Моделирование.Проектирование.Реализация.

А5.3 Сроки выполнения работ по стадиям и этапам

Разработка и исследование моделей, алгоритмов ВЗП и программных продуктов была разделена на 5 этапов, табл.4 .

Таблица 4Сроки выполнения работ по стадиям

Наименование этапа Срок выполненияАнализ состояния проблемы 01.11.14Моделирование системы ВЗП 01.01.15Проектирование системы ВЗП 01.03.15Реализация системы ВЗП 01.06.15

А5.4 Перечень исполнителей, консультантов и документы согласования

А5.4.1 Исполнители и консультантыРазработчик - студент группы Фт-410802 Шляхова С.И.Руководитель - канд. техн. наук, доц. Захарова Г.Б.Консультант - н.с. ИММ УрО РАН Перевалов Д.С.

52

Page 53: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Рецензент – канд. физ-мат. наук, Кривоногов А.Н.

А5.4.2 Документы согласованияЗадание по дипломному проекту студентаПояснительная записка

А6 ПОРЯДОК ПРИЕМКИ

А6.1 Регламент

Защита дипломного проекта перед ГЭК.

А6.2 Сроки

11 июня 2015 г.

А7 ТРЕБОВАНИЯ К СОСТАВУ И СОДЕРЖАНИЮ РАБОТПО ПОДГОТОВКЕ СИСТЕМЫ К ВВОДУ В ДЕЙСТВИЕ

Ответственный за реализацию работ - разработчик.

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

выдать её в пользование нескольким звуковым операторам. Произвести тестирование. Провести дальнейшую модернизацию специально для выполнения той или иной функции, наиболее востребованной.

Тестирование.Полученный на предыдущем шаге продукт выпустить уже для

широкого полномасштабного тестирования.Результаты.Программа ВЗП анализирует полученные с микрофона и камеры

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

А8 ТРЕБОВАНИЯ К ДОКУМЕНТИРОВАНИЮ

А8.1 Перечень подлежащих разработке комплектов и видов документовЗадание на проектирование - 2 экземпляра.Пояснительная записка.Презентация.Доклад.Руководство пользователя программы визуализации звуковых полей.

53

Page 54: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

А8.2 Требования к документам

Объем основных частей пояснительной записки не более 80 страниц. Продолжительность доклада 7 минут.

А9 ИСТОЧНИКИ РАЗРАБОТКИ

1 Гольдштейн С.Л., Ткаченко Т.Я. Введение в системотехнику. Екатеринбург: ИРРО, 1994.2 ГОСТ 34.602. Техническое задание на создание автоматизированной системы.

54

Page 55: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Приложение Б

Программный код системы ВЗП

Содержание файла main.cpp:

#include "ofMain.h"

#include "soundMapApp.h"

#include "ofAppGlutWindow.h"

//========================================================================

int main( ){

ofAppGlutWindow window;

ofSetupOpenGL(&window, 700,320, OF_WINDOW); // загрузка графической библиотеки

// this kicks off the running of my app

// can be OF_WINDOW or OF_FULLSCREEN

// pass in width and height too:

ofRunApp( new soundMapApp());

}

Содержание файла soundMapApp.h:

#pragma once

#include "ofMain.h"

class soundMapApp : public ofBaseApp{

public: // здесь объявляются глобальные переменные

void setup();

void update();

void draw();

void audioReceived( float *input, int bufferSize, int nChannels ); //приём звука

ofVideoGrabber cam; //камера

ofSoundStream mic; //микрофон

void keyPressed(int key);

void keyReleased(int key);

void mouseMoved(int x, int y );

void mouseDragged(int x, int y, int button);

void mousePressed(int x, int y, int button);

void mouseReleased(int x, int y, int button);

void windowResized(int w, int h);

void dragEvent(ofDragInfo dragInfo);

void gotMessage(ofMessage msg);

};

55

Page 56: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

Содержание файла soundMapApp.cpp:

#include "soundMapApp.h"

#include <time.h>

const int vW = 640*0.5; //ширина видео

const int vH = 480*0.5; //высота видео

ofImage img; //отрисовка кадров

ofPixels pixs; //пиксели для рисовки кадров

int T = 50; //допуск яркости пикселей

ofPoint spotP; //позиция микрофона

int soundMap[vW][vH]; //карта громкостей

int pix = 10; //зернистость карты от 3 до sizeMax

int sizeMax = 0; //максимальный размер связной области

vector<ofPoint> p; //4 точки для стабилизации изображения

int clicks = 0; //4 клика для калибровки

bool showGrid = false; //показывать ли сетки

ofImage gradient; //звуковой градиент

ofPixels gPixs; //пиксели градиента

int brightness;

const int sampleRate = 44100; //Sample rate of sound

const float duration = 0.25; //Duration of the recorded sound in seconds

const int N = duration * sampleRate; //Size of the PCM buffer

const float volume = 0.5;

int recPos = 0; //Current recording position in the buffer

int playPos = 0; //Current playing position in the buffer

vector<float> buffer; //буффер полученого сигнала с микрофона

float maxDec; //максимальная громкость микрофона

//определение ширины пятна на изображении для поиска микрофона

int analyseSpot(ofPixels input, int sv, int x0, int y0, int search) {

int w = input.getWidth();

int h = input.getHeight();

vector<ofPoint> res; //массив точек искомого цвета

res.push_back(ofPoint(x0, y0)); //кладём туда стартовую точку

unsigned int begin = 0;

while (begin < res.size()) {

ofPoint &p = res[begin]; //захватываем точку

int px = p.x;

int py = p.y;

begin++;

56

Page 57: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

for (int y = py - 1; y <= py + 1; y+=pix) {

for (int x = px - 1; x <= px + 1; x+=pix) {

if (x >= 0 && x < w && y >= 0 && y < h

&& (sv==8 || x == px || y == py)

&& input.getColor( x, y ).getBrightness() == search ) { //если яркость

соответствует искомой (0 - черная точка)

res.push_back(ofPoint(x,y));

//добавляем в массив искомых точек

}

}

}

}

return res.size();

}

std::string currentDateTime() {

time_t now = time(0);

struct tm tstruct;

char buf[80];

tstruct = *localtime(&now);

strftime(buf, sizeof(buf), "%Y-%m-%d.%X", &tstruct);

return buf;

}

//--------------------------------------------------------------

void soundMapApp::setup(){

cam.setDeviceID(0); //ID камеры

cam.initGrabber(vW,vH); //инициализируем захват

cam.listDevices();

buffer.resize( N, 0.0 ); //указываем размер звукового буффера

ofSoundStreamListDevices(); //список доступных микрофонов

mic.setDeviceID(0); //ID микрофона

mic.setup(this, 2, 1, sampleRate, 256, 4 ); //запуск аудиозахвата

for(int y=0; y<vH; y+=pix)

for(int x=0; x<vW; x+=pix)

soundMap[x][y]=255; //"обнуляем" карту громкостей

for(int i=0; i<4; i++)

p.push_back(ofPoint(0, 0));

for(int i=0; i<p.size(); i++)

p[i]=ofPoint(0, 0);

p[0]=ofPoint(1, 0);

p[1]=ofPoint(vW, 0);

57

Page 58: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

p[2]=ofPoint(vW, vH-1);

p[3]=ofPoint(1, vH-1);

gradient.loadImage("graf.bmp");

ofDrawBitmapString("gradient = " + ofToString(gradient.getWidth())+" pix",10,60+vH+10);

gPixs = gradient.getPixelsRef();

ofBackground(255,255,255);

}

//--------------------------------------------------------------

void soundMapApp::update(){

cam.update();

}

//--------------------------------------------------------------

void soundMapApp::draw(){

///////////////////////////////////////////////

//отрисовка изображения с камеры

///////////////////////////////////////////////

if(cam.isFrameNew()) {

pixs = cam.getPixelsRef(); //получаем массив пикселей изображения

pixs.setImageType(OF_IMAGE_GRAYSCALE); //переводим в полутона чб

int size = 0; //размер проверяемой связной области

sizeMax = 0;

for(int y=0; y<vH; y++) {

for(int x=0; x<vW; x++) {

if(clicks>3) {

float xu = x / (float)vW;

float yu = y / (float)vH;

ofPoint P = (1-xu)*(1-yu)*p[0] + (xu)*(1-yu)*p[1] + (xu)*(yu)*p[2] +

(1-xu)*(yu)*p[3];

int X = P.x;

int Y = P.y;

brightness = 255;

if(X>=0 && X<=vW && Y>=0 && Y<=vH) {

brightness = pixs.getColor(X,Y).getBrightness();

//получаем яркость пикселя

brightness = (brightness>T) ? 255 : 0;

//сравниваем яркость с порогом и приравниваем яркость к 0 или 255

}

pixs.setColor(x,y,brightness); //перекрашиваем пиксель

58

Page 59: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

if(brightness==0 && (x % pix) == 0 && (y % pix) == 0) {

//сравниваем каждый 10 черный пиксель (для быстродействия)

size = analyseSpot(pixs,8,x,y,0);

//получаем размер связной области

if(size>sizeMax) {

//и ищем из всех максимальную

sizeMax=size; //меняем

spotP.x = x; //координаты max связной области

spotP.y = y;

}

}

} else {

brightness = pixs.getColor(x,y).getBrightness();

//получаем яркость пикселя

brightness = (brightness>T) ? 255 : 0;

//сравниваем яркость с порогом и приравниваем яркость к 0 или 255

pixs.setColor(x,y,brightness);

//перекраываем пиксель

if(brightness==0 && (x % pix) == 0 && (y % pix) == 0) {

//сравниваем каждый 10 черный пиксель (для быстродействия)

size = analyseSpot(pixs,8,x,y,0);

//получаем размер связной области

if(size>sizeMax) {

//и ищем из всех максимальную

sizeMax=size; //меняем

spotP.x = x; //координаты max связной области

spotP.y = y;

}

}

}

}

}

img.setFromPixels(pixs); //в объект изображения кидаем обработанный массив пикселей

}

ofSetColor(255);

img.draw(0,0); //рисуем картинку

//cam.draw(vW+20, 0);

/*

Получение чб изображения с пикселами двух типов позволяет работать

с массивом пикселей на уровне математической логики, что необходимо

для поиска объектов на изображении, в данном случае - микрофона

*/

59

Page 60: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

///////////////////////////////////////////////

//отрисовка звука с микрофона

///////////////////////////////////////////////

int w = 1000; //точность определения звука, часть от буффера

float col; //громкость с микрофона

maxDec = 0; //ищем максимальную громкость волны в буффере

for (int x=0; x<w; x++) {

int i = float(x) * N / w;

col = abs(buffer[i] * 255);

maxDec = (col>maxDec) ? col : maxDec;

}

ofColor c = gPixs.getColor(maxDec,0);

ofSetColor(c);

ofRect(vW+10, vH, 3, -ofMap(maxDec, 0, 255, 0,vH,true));//отрисовываем ползунок громоксти

ofSetColor(255,0,0);

ofRect(spotP.x-pix-1,spotP.y-pix,2,pix); //ордината крестика

ofRect(spotP.x-pix*1.5,spotP.y-pix/2-1,pix,2); //абцисса крестика

if(maxDec<255)

//if(soundMap[(int)spotP.x][(int)spotP.y]==255)

soundMap[(int)spotP.x][(int)spotP.y] = 255-maxDec;

//заполняем карту громкости от 0 до 255

/*

карта громкостей соотносит координаты наибольшей связной черной области

на изображении и громкость в формате от 0 до 255, где 255 - абсолютная тишина

такой формат необходим для отрисовки карты на форме

*/

///////////////////////////////////////////////

//отрисовка вспомогательных элементов

///////////////////////////////////////////////

for(int y=0; y<vH; y+=pix)

for(int x=0; x<vW; x+=pix) {

if(soundMap[x][y]<256 && soundMap[x][y]>0) {

ofColor c = (soundMap[x][y]==255) ? 255 : gPixs.getColor(255-soundMap[x]

[y],0);

ofSetColor(c);

/*int c = soundMap[x][y];

ofSetColor(c,c,c);*/

ofRect(x+vW+30,y,pix,pix); //рисуем карту громкостей

}

}

60

Page 61: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

if(showGrid){

ofSetColor(240);

for(int y=0; y<vH; y+=pix) { //игреки сеток

ofLine(vW+20,y,vW*2+40,y);

ofLine(0,y,vW,y);

}

for(int x=0; x<vW; x+=pix) { //иксы сетов

ofLine(vW+20+x,vH,vW+20+x,0);

ofLine(x,0,x,vH);

}

}

ofSetColor(255,0,0);

ofLine(vW+20,vH,vW*2+40,vH); //абцисса карты

ofLine(vW+20,vH,vW+20,0); //ордината карты

for(int i=0; i<255; i++) {

ofColor c = gPixs.getColor(i,0);

ofSetColor(c);

ofRect(vW+20+i,vH+10,1,5);

}

ofSetColor(0);

ofLine(vW,vH,0,vH+1); //обводка видео

ofLine(vW,vH,vW+1,0);

ofSetColor(0,255,0);

ofLine(p[0],p[1]);

ofLine(p[1],p[2]);

ofLine(p[2],p[3]);

ofLine(p[3],p[0]); //контур преобразования

//выводим все переменные

ofSetColor(0);

ofDrawBitmapString("Brightness level = " + ofToString(T),10,10+vH+10);// :

ofDrawBitmapString("Камера недоступна!",10,10);

ofDrawBitmapString("Mic coordinate = [" + ofToString(spotP.x)+","+ofToString(spotP.y)

+"]",10,20+vH+10);

ofDrawBitmapString("Mic volume = " + ofToString((int)ofMap(maxDec, 0, 255, 0,100,true))

+"%",10,30+vH+10);

ofDrawBitmapString("Grit = " + ofToString(pix)+" pix",10,40+vH+10);

ofDrawBitmapString("p[] = [" + ofToString(p[0].x)+","+ofToString(p[0].y)+"]"

+ "[" + ofToString(p[1].x)+","+ofToString(p[1].y)+"]"

+ "[" + ofToString(p[2].x)+","+ofToString(p[2].y)+"]"

61

Page 62: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

+ "[" + ofToString(p[3].x)+","+ofToString(p[3].y)

+"]",10,50+vH+10);

//ofDrawBitmapString("Time = " + ofToString(currentDateTime()),10,60+vH+10);

}

void soundMapApp::audioReceived(float *input, int bufferSize, int nChannels){

for (int i=0; i<bufferSize; i++) {

buffer[recPos]=input[i];

recPos++;

recPos %= N;

}

}

//--------------------------------------------------------------

void soundMapApp::keyPressed (int key){

if(key == 'q' || key == 'й') cam.videoSettings();

if(key=='z' || key=='я') if(T>10) T-=10; //порог яркости пикселей

if(key=='x' || key=='ч') if(T<250) T+=10;

if(key=='a' || key=='ф') if (pix-1 > 3) pix--; //зернистость

if(key=='s' || key=='ы') if (pix+1 < sizeMax) pix++;

if(key=='g' || key=='п') showGrid = !showGrid; //вкл/выкл сетку

}

//--------------------------------------------------------------

void soundMapApp::keyReleased(int key){

}

//--------------------------------------------------------------

void soundMapApp::mouseMoved(int x, int y ){

}

//--------------------------------------------------------------

void soundMapApp::mouseDragged(int x, int y, int button){

if(!((x>=0 && x<vW && y>=0 && y<vH))) return;

if(clicks>3) clicks=0;

p[clicks].x = x;

p[clicks].y = y;

62

Page 63: Шляхова С.И., Визуализация звукового поля с применением камеры и микрофона - текст дипломной работы

}

//--------------------------------------------------------------

void soundMapApp::mousePressed(int x, int y, int button){

}

//--------------------------------------------------------------

void soundMapApp::mouseReleased(int x, int y, int button){

if(x<vW && y<vH) clicks++;

}

//--------------------------------------------------------------

void soundMapApp::windowResized(int w, int h){

}

//--------------------------------------------------------------

void soundMapApp::gotMessage(ofMessage msg){

}

//--------------------------------------------------------------

void soundMapApp::dragEvent(ofDragInfo dragInfo){

}

63