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:
Olá Rodrigo, tudo beleza?
ResponderExcluirCara 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!