на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Использование платформы j2me для мобильных телефонов при организации видеонаблюдений
p align="left">- определять, куда указывает соединение FileConnection - на файл или папку - с помощью метода isDirectory();

- получать фильтрованный список файлов и директорий методом list (String filter, boolean includeHidden);

- проверять, существует ли директория или файл, применяя метод exists();

- определять, является ли скрытым файл, используя метод isHidden();

- создавать, удалять файл или директорию методами create(), mkdir() и delete();

- открывать входной / выходной поток для чтения / записи данных в файл, применяя методы openInputStream(), openOutputStream().

Листинг разработанного навигатора по файловой системе мобильного телефона представлен в приложении Б.

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

62

Рисунок 3.7 - Файловый броузер

3.5 Отправка SMS и MMS-сообщений

Для отправки сообщений с мобильного телефона было исп
ользовано Wireless Messaging API 2.0 (пакет javax.wireless.messaging) [11]. Основные классы этого пакета следующие:

- MessageConnection - интерфейс, который определяет операции для посылки и получения сообщений;

- TextMessage - интерфейс, представляющий текстовые сообщения;

- MultipartMessage - интерфейс для представления составных сообщений;

- MessagePart - экземпляры данного класса могут быть добавлены в MultipartMessage. Каждый MessagePart состоит из данных.

Для отправки сообщений приложение должно сначала получить экземпляр MessageConnection, передав методу javax.microedition.io. Connector.open() URL, определяющий адресат. В этом URL содержится информация об используемом протоколе (SMS или MMS), номере телефона и порте адресата.

После создания MessageConnection формируется SMS или MMS-сообщение, заполняется данными и отправляется на указанный номер (листинги 3.16 и 3.17).

Листинг 3.16 - Отправка SMS-сообщений

* Send SMS with specified text to phoneNumber

public static void sendSMS (String phoneNumber, String text) {

try {

String addr = "sms:// " + phoneNumber+":5678";

MessageConnection conn = (MessageConnection) Connector.open(addr);

TextMessage msg = (TextMessage) conn.newMessage (MessageConnection.TEXT_MESSAGE);

msg.setPayloadText(text);

conn.send(msg);

conn.close();

} catch (IOException ex) {

Log.out.println ("IOException at Utilities.sendSMS()" + ex.toString());

}

}

Листинг 3.17 - Отправка MMS-сообщений

* Send MMS with specified image in second parameter to phoneNumber

*/

public static void sendMMS (String phoneNumber, byte[] data) {

try {

private static MessageConnection conn;

private static MultipartMessage msg;

String addr = "mms:// " + phoneNumber +":5432";

conn = (MessageConnection) Connector.open(addr);

msg = (MultipartMessage) conn.newMessage (MessageConnection.MULTIPART_MESSAGE);

 // size of the part and the number of bytes loaded to mms

int partSize = 10000, counter = 0;

byte buf[] = new byte[partSize];

for (int i = 0; i < data.length / partSize && counter<=290000; i++) {

int curPartLength = partSize;

 // if the number of left bytes in data[] is lenss then part size

if (counter + partSize > data.length) {

buf = new byte [data.length - counter];

curPartLength = data.length - counter;

}

 // load next part of mms

for (int j = 0; j < curPartLength; j++) {

buf[j] = data [counter++];

}

MessagePart p = new MessagePart (

buf,

Preferences.getInstanse().getEncodingType(),

String.valueOf(i), null, null);

msg.addMessagePart(p);

}

} catch (SizeExceededException ex) {

Log.out.print ("SizeExceededException "+ex.toString());

} catch (Exception e) {

Log.out.print ("Exception "+e.toString());

} finally {

try {

conn.send(msg);

conn.close();

} catch (IOException ex) {

Log.out.print ("IOException "+ex.toString());

}

}

}

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

62

62

Рисунок 3.8 - Настройка SMS и MMS-уведомлений

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

Алгоритм обнаружения движения основан на сравн
ении последовательных кадров, которые получаются от камеры с использованием 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].

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

Официальный сайт компании Sun Microsystems. Платформа Java 2 Micro Edition [Электронный ресурс] / Режим доступа: http://java.sun.com/javame/reference/apis.jsp. - Дата доступа: 25.05.2009.

Горнаков С.Г. Программирование мобильных телефонов на Java 2 Micro Edition / С.Г. Горнаков. - М.: ДМК Пресс, 2004. - 336 с.

Пирумян B.В. Платформа программирования J2ME для портативных устройств / B.В. Пирумян Пер. с англ. - М.: КУДИЦ-ОБРАЗ, 2002. - 352 с.

Статьи разработчиков LWUIT [Электронный ресурс] / Режим доступа: http://lwuit.blogspot.com/ - Дата доступа: 25.05.2009.

Официальный сайт библиотеки LWUIT Edition [Электронный ресурс] / Режим доступа: https://lwuit.dev.java.net/ - Дата доступа: 25.05.2009;

Архипкин В.Я. Bluetooth. Технические требования. Практическая реализация / В.Я. Архипкин, А.В. Архипкин. - М.: Мобильные коммуникации, 2004. - 203 с.

Вишневский В.М Широкополосные беспроводные сети передачи информации / В.М Вишневский, А.И. Ляхов, С.Л. Портной. - М.: Эко-Трендз, 2005. - 592 с.

Andre N. Klingsheim, J2ME Bluetooth Programming, 2004.

Спецификация Bluetooth API and OBEX API (JSR-82) for Java Platform, Micro Edition.

Спецификация FileConnection Optional Package (JSR-75) for Java 2 Micro Edition Version 1.0.

Спецификация Wireless Messaging API (JSR-205) for Java 2 Micro Edition Version 1.1.

Спецификация Mobile Media API (JSR-135) for Java 2 Micro Edition.

Лусканова М.В. Организация видеонаблюдения с помощью мобильного телефона / М.В. Лусканова, Е.А. Ружицкая // "Новые математические методы и компьютерные технологии в проектировании, производстве и научных исследованиях", XII Республиканская научная конференция студентов и аспирантов (2009, Гомель)

Страницы: 1, 2, 3, 4, 5, 6



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.