Вопрос

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

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

Спасибо!

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top