Opencv
VideoCapture.py
import cv2
camera = cv2.VideoCapture(0)
camera.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
while True:
ret, frame = camera.read()
cv2.imshow('camera', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.imwrite("capout.jpg ", frame)
break
camera.release()
cv2.destroyAllWindows()
Bei der Windows-Standardkamera wird bei Auswahl von 1080p das Bild normalerweise von der Webkamera ausgegeben. Bei Verwendung der Videoaufnahme von Opencv werden jedoch beide Seiten wie im Referenzbild gezeigt schwarz ausgefüllt, und die Auflösung selbst wird ebenfalls erweitert. Ich fühle die Rauheit. Die Bildrate erhöht sich nicht, obwohl die Kamera Videos mit 60 Bildern pro Sekunde und 1080p aufnehmen kann. (Der eingestellte Wert spiegelt sich in der get-Funktion von VideoCapture wider. Wenn die Bildrate jedoch tatsächlich gemessen wird, erreicht sie einen Spitzenwert von 30 fps.)
Ein ähnliches Phänomen wurde auf der folgenden Website gemeldet, daher habe ich die Lösung ausprobiert und gelöst. OpenCV capturing imagem with black side bars
VideoCapture2.py
import cv2
#Ändern Sie das Streaming in DSHOW
camera = cv2.VideoCapture(0, cv2.CAP_DSHOW)
camera.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
while True:
ret, frame = camera.read()
cv2.imshow('camera', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.imwrite("capout.jpg ", frame)
break
camera.release()
cv2.destroyAllWindows()
Ich weiß nicht, ob die direkte Ursache schlechtes Windows oder ein Problem mit der Version von Opencv ist, aber ich konnte es mithilfe eines Streaming-Formats namens Direct SHOW lösen. Bitte beachten Sie die nachstehende Erklärung zu Direct SHOW. qiita_directshow Bisher habe ich die Videoaufnahme von Opencv normal verwendet, aber bis jetzt (in einer anderen Umgebung) gab es kein Problem mit dem Standard-Streaming, sodass die Frage weiterhin besteht. Wenn wir Optionen bestätigen können, die aufgrund dieser Änderung nicht verwendet werden können, oder erhebliche Verzögerungen, werden wir sie hinzufügen.
Recommended Posts