Detecção de movimento de um objeto específico no .NET
-
19-09-2019 - |
Pergunta
Preciso fazer um aplicativo .NET onde devo detectar um objeto específico que o usuário está segurando, usando uma câmera.
Se o objeto deve ter algumas características específicas para que possa ser facilmente reconhecido e detectado no espaço circundante, dê -me algumas dicas (ex um cubo verde?)
Qual seria a melhor técnica/.NET Library a ser usada? Preciso traduzir em tempo real o movimento da mão do usuário e exibir uma animação na tela de acordo.
Solução
Para detecção de movimento: encontre as boas características (cantos, ou seja) e alimente-os em um algoritmo de fluxo óptico de Lucas-Kanada. O OpenCV tem essas funções, mas não sei se o OpenCvNet tem ou não.
Se o seu objeto tiver um recurso específico, como ser o mais verde da cena, por exemplo, você pode usar o limite. Caso contrário, você precisará usar técnicas de reconhecimento de padrões.
pseudo-código:
threshold1 = 128
threshold2 = 64
foreach Pixel p in Picture
if (p.Green > 128) and (p.Red < threshold2) and (p.Blue < threshold2)
outputImage.CurrentPixel = 255
else
outputImage.CurrentPixel = 0
Aqui você terá sua imagem quais verdes são mostrados como brancos e o resto é preto
Outras dicas
Você está procurando Aforge.net.
Veja também Este artigo.