Eu tenho um brinquedo robô rastreado e estou controlando-o com um iPhone. O robô gera um feed de câmera ao vivo com um tamanho de quadro conhecido e estou exibindo na UIImage.
Adicionei um ponteiro laser ao robô e o fixei ao longo do eixo do robô. Estou tentando detectar o ponto do ponteiro laser na imagem e, assim, tentar calcular a proximidade do objeto. Se o ponto do laser estiver longe do centro, sei que o robô está preso na parede e precisa fazer o backup.
Como posso detectar um ponto de pixels branco-vermelho brilhante em uma tela? Uma solução seria provar a cor dos pixels dentro de um determinado raio do centro e detectar uma cor brilhante de blob. Alguém pode sugerir um algoritmo para esta atividade?
Outra abordagem seria acompanhar a posição média do ponto nos últimos quadros, reduzindo assim o raio do palpite. Se não houver ponto em uma região predefinida, a região de pesquisa poderá ser expandida.
Finalmente, quero ser capaz de ensinar o robô a detectar carpetes ao seu redor. O tapete reflete um ponteiro laser de uma certa maneira, e quero entender quantos quadros ao redor do robô têm propriedades semelhantes. Se eu souber onde o ponteiro do laser está na tela, posso cortar um pequeno retângulo dessa imagem e compará-los. Existe uma maneira eficiente de comparar várias imagens pequenas entre si para entender se as silhuetas correspondem?
Notei que o laser é refletido em superfícies brilhantes, e a direção dessa reflexão pode me dizer algo sobre a orientação da superfície no espaço, de acordo com as leis da refração.
Obrigado!