Мегаобучалка Главная | О нас | Обратная связь


Алгоритм обнаружения движения



2020-02-04 164 Обсуждений (0)
Алгоритм обнаружения движения 0.00 из 5.00 0 оценок




 

Алгоритм обнаружения движения основан на сравнении последовательных кадров, которые получаются от камеры с использованием Mobile Media API [12] следующим образом (листинг 3.18).

 

Листинг 3.18 – Доступ к камере

// get access to camera

player = Manager.createPlayer ("capture://video");

player.realize();

videoControl = (VideoControl) getPlayer().getControl ("VideoControl");

videoControl.setDisplayFullScreen(true);

byte[] b = new byte[5000];

// get snapshot

b = videoControl.getSnapshot(encodings);

im = Image.createImage (b, 0, b.length);

rgbIm = new RGBImage(im);

// call method for motion detection

int r = process (rgbIm.getRGB());

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

Функция обнаружения движения получает в качестве параметра очередной кадр камеры, который представляет собой одномерный массив. Каждый элемент массива – это одна точка изображения в формате AARRGGBB, который обозначает следующее:

- AA – прозрачность (0xFF означает полную непрозрачность, а 0 – полную прозрачность);

- RR, GG, BB – соответственно красная, зеленая, голубая rgb-составляющие цвета данной точки.

Обнаружение движения выполняется в несколько этапов. На первом сравниваются два последовательных кадра и формируется маска. Для этого подсчитывается средняя прозрачность всех точек двух сравниваемых кадров и определяется их разность (коррекция). Далее происходит сравнение соответствующих точек этих кадров и вычисляются разности rgb-составляющих цветов этих точек (листинг 3.19).

Эти разности затем корректируются, а именно: присваивается 0, если данная разность меньше коррекции, в противном случае – из данной разности вычитают коррекцию. Далее получают оттенок серого по скорректированным rgb-разностям, как показано в листинге 3.19 (вычисление переменной result). В результирующую маску записывается этот оттенок серого с учетом прозрачности alpha, взятой из соответствующей точки предыдущего кадра. Если в данных точках есть значительное изменение, то в маску записывается белая точка.

Листинг 3.19 – Формирование маски

 

// ip is a element number in two arrays –

// current image (inDataInt) and the previous one (refDataInt)

int alpha = refData[ip] & 0xFF000000;

refDataInt = (refData[ip] & 0xFF0000) / 256 / 256;

inDataInt = (inData[ip] & 0xFF0000) / 256 / 256;

r = (refDataInt > inDataInt)? refDataInt – inDataInt: inDataInt – refDataInt;

refDataInt = (refData[ip] & 0x00FF00) / 256;

inDataInt = (inData[ip] & 0x00FF00) / 256;

g = (refDataInt > inDataInt)? refDataInt – inDataInt: inDataInt – refDataInt;

refDataInt = (refData[ip] & 0x0000FF);

inDataInt = (inData [ip++] & 0x0000FF);

b = (refDataInt > inDataInt)? refDataInt – inDataInt: inDataInt – refDataInt;

// intensity normalization

r -= (r < correction)? r: correction;

g -= (g < correction)? g: correction;

b -= (b < correction)? b: correction;

result = (byte) (java.lang. Math.sqrt((double) ((r * r) + (g * g) + (b * b)) / 3.0));

// bwData is a mask

if (result > (byte) threshold) {

bwData [op++] = alpha + 0xFFFFFF;

} else {

bwData [op++] = alpha + result;

}

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

 

                   
      v v v        
      v v v        
      v v v        
                   

Рисунок 3.10 – Анализ маски

 

Полный листинг метода обнаружения движения приведен в приложении В.

 

 


Рисунок 3.9 – Диаграмма деятельности для процесса видеонаблюдения


Заключение

 

В дипломной работе освещены теоретические основы платформы J2ME, архитектуры Bluetooth и обработка видеоданных для обнаружения движения. Разработано приложение на платформе J2ME, которое позволяет осуществлять видеонаблюдение. В нем используются такие ресурсы мобильного телефона как файловая система, камера, Bluetooth, отправка SMS и MMS-сообщений. Изучена библиотека LWUIT, применяемая для построения графического интерфейса.

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

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

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

Интерфейс данного приложения реализован с помощью библиотеки LWUIT. Для отправки SMS и MMS-сообщений с мобильного телефона использовалось Wireless Messaging API 2.0 (JSR-205). Работа с файловой системой построена на основе FileConnection API (JSR-75). Передача данных по Bluetooth реализована с помощью пакета JSR-82. Доступ к камере выполнен с помощью MobileMedia API (JSR-135).

Полученные результаты докладывались на XII Республиканской научной конференции студентов и аспирантов "Новые математические методы и компьютерные технологии в проектировании, производстве и научных исследованиях". Опубликованы тезисы доклада [13].

 

 




2020-02-04 164 Обсуждений (0)
Алгоритм обнаружения движения 0.00 из 5.00 0 оценок









Обсуждение в статье: Алгоритм обнаружения движения

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (164)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)