domingo, 7 de julho de 2013

Rastreamento da direção do Objeto com Python e SimpleCV

Olá Pessoal, com esse algoritmo é possível saber em que direção o objeto está indo:

segue o código:




from SimpleCV import *
__autor__='Rodrigo gomes'


def check_movimento(x = 0,y = 0,t=1):
 direcao = ""
 direcaoX= ""
 direcaoY = "" 
 if x > t:
  direcaoX= "Direita"
 if x < -1*t:
  direcaoX= "Esquerda"
 if y < -1*t:
  direcaoY = "Cima"
 if y > t:
  direcaoY = "Baixo"

  direcao = direcaoX+ " " + direcaoY
 if direcao is not "":
  return direcao
 else:
  return "Sem Movimento"

def main():
   
    d = Display((640,480))
    cam = Camera()
    anterior = cam.getImage().flipHorizontal().scale(0.3)
    time.sleep(0.5)
    t = 0.5
    buffer = 20
    count = 0
    while d.isNotDone():
            atual = cam.getImage().flipHorizontal()
            atual = atual.scale(0.3)
            if( count < buffer ):
                    count = count + 1
            else:
                    fs = atual.findMotion(anterior, window=15, method="HS")
                    lengthOfFs = len(fs)
                    if fs:
                            fs.draw(color=Color.GREEN)
                            dx = 0
                            dy = 0
                            for f in fs:
                                    dx = dx + f.dx
                                    dy = dy + f.dy

                            dx = (dx / lengthOfFs)
                            dy = (dy / lengthOfFs)
                            motionStr = check_movimento(dx,dy,t)
                            atual.drawText(motionStr,10,10,fontsize=20)

            anterior = atual
            time.sleep(0.01)
            atual.save(d)

if __name__ == '__main__':
    main()




demo no vídeo:


Um comentário:

  1. Olá Rodrigo, tudo beleza?

    Cara achei esse seu trabalho interessante. Gostaria de saber se tem possibilidade de adaptar esse algoritmo para reconhecer pessoas trafegando por um determinado ambiente?

    Saudaçõe!

    ResponderExcluir