Обнаружение движения с помощью iPhone

Я видел как минимум 6 приложений в AppStore, которые делают фото при обнаружении движения (т. е. что-то вроде шпионских штучек). Кто-нибудь знает, как это сделать с помощью iPhone SDK?

Я предполагаю, что их приложения делают фотографии каждые X секунд и сравнивают текущее изображение с предыдущим, чтобы определить, есть ли какая-либо разница (читай «движение»). Есть идеи получше?

Спасибо!


person Kostya    schedule 15.12.2009    source источник


Ответы (4)


Вероятно, вы также можете использовать микрофон для обнаружения шума. Именно так работают многие датчики движения в охранных системах, но они прослушивают ультразвуковые волны. Успех этого во многом зависит от чувствительности микрофона iPhone и того, какой API-доступ у вас есть к сигналу. Если микрофон недостаточно чувствителен, прослушивание обычного шума в диапазоне слышимости человека может быть достаточно для ваших нужд (хотя это не «настоящее» обнаружение движения).

Что касается изображений - рассмотрите возможность использования какого-то алгоритма расстояния редактирования строки, но для изображений. Что-то, что делает снимок каждые X раз и сравнивает его с предыдущим сделанным изображением. Если изображения слишком разные (слишком большое расстояние редактирования), то звучит сигнал тревоги. Это будет учитывать медленные изменения дневного света и, вероятно, будет работать лучше, чем делать одно эталонное изображение в начале периода наблюдения, а затем сравнивать с ним все остальные изображения.

Если вы объедините эти два метода (изображение и звук), это может дать вам то, что вам нужно.

person Mike Cialowicz    schedule 15.12.2009
comment
Небольшое примечание: будьте гибкими в выборе расстояния редактирования изображения. У всех цифровых камер есть шум, из-за которого две, казалось бы, идентичные фотографии на самом деле сильно различаются на битовом уровне. Если доступного света недостаточно, камера автоматически увеличит чувствительность ISO, создавая больше шума. Если вас это не утомляет, ваше приложение может хорошо работать днем, но вызывать ложные срабатывания ночью. - person Mike Cialowicz; 15.12.2009

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

person Jab    schedule 15.12.2009

Я думаю, вы примерно поняли - телефон, вероятно, хранит изображения, где дельта между изображением B и изображением A превышает некоторый предопределенный порог.

Вам нужно будет найти библиотеку изображений, написанную на Objective-C, чтобы выполнить анализ.

person Dave Swersky    schedule 15.12.2009
comment
кто-нибудь знает о такой библиотеке? - person coneybeare; 25.06.2010

У меня есть это приложение. Я написал библиотеку для Delphi 10 лет назад, но анализ такой же.

Суть в том, чтобы сделать матрицу из всего экрана, например. 25x25, а затем сделать средний цвет для каждой ячейки. После этого сравните R,G,B,H,S,V среднего цвета от одного изображения к другому и, если разница больше установленной, у вас есть движение.

В своем приложении я использую фрагментный шейдер для отображения движения в реальном времени. Любой вопрос, не стесняйтесь спрашивать ;)

person Lubomir Havran    schedule 12.08.2013