povedlo se vam někomu aktivovat tenhle modul ? mě to vubec nejde nevim jak ho nahrat
http://videocapture.sourceforge.net/html/VideoCapture.py.html
Fórum › Python
Webcam
To xeonikx : Pouzival som ho v spojeni s pygame, na zobrazenie dat ktore som dostal z triedy VideoCapture. Webkameru je samozrejme nutne mat nainstalovanu v systeme, VideoCapture podporuje iba platformu win.
vyvolanie konfiguracie webkamery:
from VideoCapture import Device
cam = Device()
cam.displayCaptureFilterProperties()
cam.displayCapturePinProperties()
V prilohe velmi jednoduchy programik na zobrazenie obrazu
super už to jde, ale někdy mi to píše "Capture Graph could not be created" je to záhada prostě to někdy napiše někdy ne nechapu
=píše to, když to už jednou běží v procese, jako že to dvakrat nemuže běžet, stačí vypnout a je to ok
Chtěl bych se zeptat jak kamerku předělat, abych byla jen černobíla, napadlo mě změnit RGB ale to asi tak změnit nejde
from VideoCapture import Device
import ImageDraw, sys, pygame, time
from pygame.locals import *
import time
res = (352,288)
pygame.init()
cam = Device()
cam.setResolution(res[0],res[1])
screen = pygame.display.set_mode((800,600))
startTime = time.time()
frameCounter = 0
while 1:
screen.fill((0,0,255))
camshot = cam.getImage()
pyimg = pygame.image.frombuffer(camshot.tostring(), res,"RGB")
screen.blit(pyimg, (0,0))
pygame.display.flip()
frameCounter += 1
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
elapsed = time.time() - startTime
print "FPS: ", frameCounter / elapsed
del cam
pygame.quit()
sys.exit()
tu chybu ti to pise preto, ze nedokaze alokovat uz pouzivane zariadenie (webcam)
jednoduchou zmenou "RGB" to nejde, pretoze ta hodnota vyjadruje, v akom formate su data
musis prekonvertovat samotny obraz do grayscale (odtiene sedej)
na zaciatok pridaj
from PIL import ImageOps
a riadky
camshot = cam.getImage()
pyimg = pygame.image.frombuffer(camshot.tostring(), res,"RGB")
zmen na
camshot = cam.getImage()
graysc = ImageOps.grayscale(camshot).convert("RGB")
pyimg = pygame.image.frombuffer(graysc.tostring(), graysc.size, graysc.mode)
musel som pouzit dvojitu konverziu (RGB->grayscale->RGB), pretoze pygame.image.frombuffer() mi nevedel rozpoznat grayscale format ("L"), aj ked by to podla webu malo ist..
Z akeho dovodu by si potreboval znizit kvalitu obrazu?
Ak to je z kvoli vytazovaniu CPU tym mini programkom co som poslal v prilohe, sustredil by som sa skor na optimalizaciu kodu.
napr. nepustat aplikaciu "na plno", predsa len obraz z beznej webkamery sa meni maximalne tak 30 krat za sekundu, tak preco ziskavat obraz castejsie?
time.sleep(0.03)
popr. cas uspania aplikacie vyladit :)
dalej nevolat prekreslenie obrazovky farbou, pretoze bude aj tak prekreslena obrazom z kamery
screen.fill((0,0,255))
ked uz degradovat obraz z kamery, tak rovno ovladacom (alebo napr. vyvolanim konfiguracie), kde sa napr. znizi pouzite rozlisenie a nerobit to dodatocne (konverziou uz ziskaneho obrazu)
)to je dycky sranda jak jednoduše něco jde time.sleep mě fakt nenapadlo ale potřebuju snižit rozlišeni, ale aby se snižila kvalita, chci to abych moh přes kamerku ovladat pohyb například něčeho, že třeba když kamerka uvidi spiše zelenou objekt se posune doleva, modrou do prava a tak tak chci zkusit snížit kvalita na maximum,
podařilo se už někomu přes python a webcamerku ovladat hru prostě if = červena třeba nějaký pixel předmět se hne do prava pokud je ten samí pixel spíše modrý v nějakém rozmězí světlosti modré pohne se předmět na druhou stranu například?
Budes musiet nejakym sposobom spracovat obraz z kamery. Na tvoje potreby by ti malo stacit spriemerovat vsetky pixely v bitmape a vyhodnotit vysledok.
Kedze farebny pixel sa sklada z cervenej (Red), zelenej (Green) a modrej (Blue) zlozky (t.j. uz predtym spominane RGB). Budes prechadzat pixel po pixeli a priemerovat ho s ulozenou hodnotou. Priemerovat budes kazdu zlozku RGB zvlast.
priem = bitmapa[0,0]
---------------------------------
priem.r = (bitmapa[x,y].r + priem.r) / 2
priem.g = (bitmapa[x,y].g + priem.g) / 2
priem.b = (bitmapa[x,y].b + priem.b) / 2
dostanes vysledny priemerny pixel a v nom budes zistovat, ktora zlozka je najvyraznejsia.
To xeonikx : díky ale na tohle jsem amater, snažím se najit jak snižim kvalitu z webcam třeba jen na rozlišení 8x8) jestli by to nějak vubec šlo, u cam.resolution se da rozlišení měnit ale zmenší se obraz ja bych potřeboval aby velikost okna obrazu zůstal stejný a rozlišení se snižilo(
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
[C#] WebCamera zachytenie pohybu — založil p-r-e-d-a-t-o-r
Webcamerka na webu — založil Anonymní uživatel
Jak webcamerou sledovat object z webu — založil houdis
Moderátoři diskuze