2016-10-22 2 views
0

bin neu hier und auch neu zu opencv. Ich habe dieses Projekt zur Hand - Entwerfen einer Anwendung, die in der Lage ist, mit meiner Computer-Webcam zu interagieren und Schnappschuss zu machen und auch Videos aufzunehmen. weit, so gut dies Also soweit ichAufnahme mit einer Webcam (entweder extern oder intern) mit Python mit Opencv

import cv2 as cv 
import numpy 

cv.namedWindow ("camera", 1) 

capture = cv.VideoCapture (0) 

while True: 
    ret, frame = capture.read() 
    img = cv.cvtColor (frame, cv.COLOR_BGR2BGRA) 
    cv.imshow ("camera", img) 
    if cv.waitKey(10) & 0XFF == ord ("q") 
     break 
capture.release() 
cv.destroyAllWindows() 

Jetzt denke ich nehme an() verwenden cv.VideoCapture.grab Und cv.VideoCapture.retrieve() Aber ehrlich weiß gehen kann ich nicht wie werde ich verwenden. Bitte ich brauche Ihre Hilfe

+0

Als Vorspeise: Python Schlüsselwörter beginnen nicht mit Großbuchstaben. –

+0

Danke! Ich weiß, dass es ein Fehler ist. – Orion

Antwort

0

Es ist ein großartiges Beispiel dafür, wie hier zu tun, dass:

http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_video_display/py_video_display.html

Das Beispiel alle 30 Sekunden eine Momentaufnahme unten nehmen und sie in eine Datei mit einem eindeutigen Zeitstempel speichern :

import cv2 as cv 
import time 
import datetime 

cv.namedWindow("camera", 1) 
capture = cv.VideoCapture(0) 

while True: 
    ret, frame = capture.read() 
    frame = cv.cvtColor (frame, cv.COLOR_BGR2BGRA) 

    file = "C:\Python34\CpV\%s.png" % datetime.datetime.now().strftime("%d-%m-%y--%H-%M-%S") 
    cv.imwrite (file, frame) 
    #cv.imshow("camera", frame) 

    time.sleep(30) 
capture.release() 
cv.destroyAllWindows() 
+0

Danke! Aber es ist vergleichbar mit dem, was ich geschrieben habe, ohne explizit zu sagen, welche Zeile ich hinzufügen muss, damit ich Schnappschüsse machen oder Aufnahmen machen kann, wie Sie es mit Ihrem Mobiltelefon oder Laptop machen. – Orion

+0

Ohne es zu testen, da ich opencv momentan nicht installiert habe und es sehr mühsam sein kann, auf einem Mac zu laufen, habe ich den obigen Code bearbeitet, um alle 30 Sekunden einen Snapshot zu speichern (ändere einfach time.sleep (30) in welches Intervall auch immer) Sie möchten) und in einer Datei mit Datum/Uhrzeit als Dateiname speichern. Ist das mehr was du willst? – kbcool

+0

Wow !!! Vielen Dank!!! – Orion

0

okay, habe ich meinen Code zu bearbeiten und es funktionierte es

Check out
import cv2 as cv 
import time 

cv.namedWindow("camera", 1) 
capture = cv.VideoCapture(0) 

while True: 
    ret, frame = capture.read() 
    frame = cv.cvtColor (frame, cv.COLOR_BGR2BGRA) 

    file = "C:\Python34\CpV\test.png" 
    cv.imwrite (file, frame) 
    cv.imshow("camera", frame) 

    #it takes a snapshot when "q" is pressed and closes 
    the window 
    if cv.waitKey(10) & 0xFF == ord ('q'): 
     break 
capture.release() 
cv.destroyAllWindows() 

Dies ist so weit wie ich bekommen habe, muss ich ein wenig bearbeiten, um es kurz und prägnant zu machen. Das nächste Problem wäre, Videos von der Webcam aufzunehmen.

So plz ich brauche immer noch deine Hilfe. Danke im Voraus.

+0

Sie sollten die Frage selbst bearbeiten, anstatt Ihr Update als Antwort –

0

Benutzen Sie den Code unten aufnehmen Webcam-Capture-Datei:

import cv2 
import cv 
cap = cv2.VideoCapture(0) 
ret,img=cap.read() 
height , width , layers = img.shape  
fps=20 
video = cv2.VideoWriter("rec_out.avi", cv.CV_FOURCC(*'DIVX'), fps, (img.shape[1], img.shape[0])) 
while True: 

    ret,img=cap.read() 
    height , width , layers = img.shape 
     video.write(img) 
    cv2.imshow('Video', img) 
    #video.write(img) 
    if(cv2.waitKey(10) & 0xFF == ord('b')): 
      break 
+0

ein wenig bearbeiten und es funktioniert Danke – Orion

+0

Great. Bitte teile den Code, der für dich funktioniert hat und/oder akzeptiere dies. –