# -*- coding: utf-8 -*- # permite açentuações from SimpleCV import * #importa todo meu FrameWork __author__ = 'Rodrigo Gomes' __name__ = "Bom_de_Mira" cam = Camera() # instanciacao da camera. temp = Image('/home/rodrigo/Imagens/2.png').resize(190, 140) #caminho para a Imagem while True: img = cam.getImage().flipHorizontal() #captura os frames img+=img.blit(temp,(1,2),alphaMask=temp) #junta Imagem ao Frame mascara = img.hueDistance(color=Color.GREEN,minsaturation=150,minvalue=200).invert().threshold(150) #cria mascara blobs = img.findBlobsFromMask(mascara,minsize=10) #procura obj apartir da mascara if blobs: # se existir objetos blobs = blobs[-1] # passa o objeto maior cod = blobs.coordinates() # pega as coordenadas do objeto em uma tupla print "coordenadas do objeto ---> %d %d" % (cod[0],cod[1]) points = [(145, 90),(cod[0],cod[1])] # pontos para desenhar a linha for i in xrange(len(points)-1): img.drawLine(points[i], points[i+1],color=Color.RED, thickness=4) #desenha a linha img = img.applyLayers() # aplica as camadas result = img.sideBySide(img,side='right') # divide a tela result = img.sideBySide(mascara,side='botton') #parte 1 da tela é a mascara result.show() #mostra na tela
Resultado:
Lembrando que tudo também depende da qualidade do vídeo da sua webcam, e da iluminação do ambiente, caso contrario, terá que ser feito alterações nos parâmetros da máscara
e aqui a imagem da pistola:
Obs: não se preocupe se não consegue enchergar o fundo, a camada png é transparente!
Demostração:
Opa Rodrigo, tudo certo?
ResponderExcluirAnimal esse seu blog. Várias coisas muito interessantes e úteis.
Comecei a ler a pouco tempo atrás sobre algumas bibliotecas de manipulação de imagens.
Queria te perguntar se com a SimpleCV em Python é possível fazer um programa que analise gabaritos tipo as de concurso, vestibulares, etc...
Já vi algumas bibliotecas parecidas, mas ao que parece essa é uma das melhores.
Voce sabe se é possível fazer isso? E sabe se existe alguma coisas já iniciada em algum projeto.
Valeu Rodrigo e parabéns novamente pelo Blog.
Abraço
Sim é perfeitamente possível, e ainda simples de se fazer, não conheço nenhum projeto iniciado sobre esse tema, vou dar uma olhada, e se encontrar algo em breve postarei aqui.!
ResponderExcluirObrigado Rodrigo.
ResponderExcluirGostaria de pedir uma ajuda, estou meio perdido com tantas funções que a biblioteca SimpleCV.
Como voce disse que é simples de se fazer, porém não me encontrei ainda....
Você poderia indicar algum caminho para seguir estudando para conseguir reconhecer os círculos.
Já tentei o usar o findCirles, mas não consegui reconhecer todos os círculos que precisava. Quando filtrei por um intervalo nem todos os círculos foram recohecidos sem que outros indesejáveis fossem reconhecido.
Segue o código:
Para testar um gabarito qualquer que encontrei no google
1 from SimpleCV import *
2 import time
3
4 moeda = Image("gabarito.png")
5
6 moeda_circ = moeda.findCircle()
7
8
9 for m in moeda_circ:
10 if m.radius() > 4 and m.radius() < 12:
11 print m.coordinates()
12 print m.radius()
13 m.show(color=(0,128,0))
14 time.sleep(4)
Estou tentando usar o findBlobs, mas estou bem confuso se realmente é esse o caminho.
Estou tentando por esse caminho:
1 from SimpleCV import*
2 import time
3
4 gab = Image("gab.png")
5
6 gab_bo = gab.findBlobs()
7
8 gab_bo[-1].show()
9
10 time.sleep(7)
11
12 print gab_bo[1].boundingCircle()
13
14 #for g in gab_bo:
15 # if g.radius() < 10:
16 # print g.coordinates()
17 # g.show()
18 time.sleep(7)
A parte comentada não esta funcionando, porém foi retirada do manual do SimpleCV
Desculpe por estar tirando uma dúvidas dessas por aqui, mas não encontrei algum lugar que pudesse ajudar.
Se você puder indicar algum caminho para resolver esse problema ficaria grato.
Obrigado novamente.
Abraço
Tem como instalar o PyCharm no Raspbarry pi?
ResponderExcluirObrigado!
Casinos in NV 2021 - DrMCD
ResponderExcluirVisit a casino in NV. Casino players will find the best 김포 출장마사지 games, 서산 출장안마 the most exciting welcome bonuses, and 경기도 출장안마 all of 광주광역 출장마사지 the most 공주 출장샵 rewarding promotions. Visit us!