Pergunta

Eu vi pelo menos 6 aplicativos na AppStore que tiram fotos quando detectar movimento (ou seja, um tipo de coisa Spy). Alguém sabe o que é uma maneira geral para fazer tal coisa usando o iPhone SDK?

Eu acho que seus aplicativos tirar fotos cada X segundos e comparar imagem atual com anterior para determinar se há alguma diferença (leia-se "movimento"). Alguma idéia melhor?

Obrigado!

Foi útil?

Solução

Você provavelmente poderia também usar o microfone para detectar ruído. Isso é realmente quantas sistema de segurança detectores de movimento trabalho - mas ouvir em ondas sonoras ultra-sônicas. O sucesso deste depende muito da sensibilidade do microfone do iPhone e que tipo de acesso à API que você tem que o sinal. Se do microfone não é sensível o suficiente, para ouvir o ruído regular,-audição alcance humano pode ser bom o suficiente para suas necessidades (embora este não é "verdadeiro" movimento de detecção).

Como para imagens - olhar em usar algum tipo de algoritmo de corda-edit-distância, mas para imagens. Algo que tira uma foto a cada X quantidade de tempo, e compara-a com a imagem anterior tomadas. Se as imagens são muito diferentes (edit distância muito grande), então os sons de alarme. Este será responsável por mudanças lentas na luz do dia, e provavelmente irá funcionar melhor do que tomar uma imagem de referência única no início do período de vigilância e, em seguida, comparando todas as outras imagens para isso.

Se você combinar estes dois métodos (imagem e som), pode conseguir o que você precisa.

Outras dicas

Você pode ter o telefone detectar mudanças de luz ou seja, utilizando o sensor na parte superior frontal do telefone. Eu só não sei como é que você acessar essa parte do telefone

Eu acho que você tem sobre o figurado out- o telefone provavelmente mantém as imagens onde o delta entre a imagem B e imagem Um é sobre algum limiar predefinido.

Você teria que encontrar uma biblioteca de imagens escrito em Objective-C, a fim de fazer a análise.

esta aplicação . Eu escrevi uma biblioteca para Delphi há 10 anos, mas a análise é a mesmo .

O ponto é fazer uma matriz de toda a tela, por exemplo, 25x25, e depois fazer uma cor média para cada célula. Depois disso, comparar o R, G, B, H, S, V de cor média de uma imagem para outra e, se a diferença for superior a set, você tem movimento.

Na minha aplicação eu uso shader de fragmento para mostrar o movimento em tempo real. Qualquer dúvida, não hesite em perguntar;)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top