[PYTHON] Rufen Sie eine Liste der Kameraparameter ab, die mit cv2.VideoCapture festgelegt werden können, und machen Sie daraus einen Wörterbuchtyp

Problem: Wenn Sie cv2.VideoCapture () verwenden, müssen Sie die Kameraausgabeeinstellungen manuell eingeben.

Beispiel


WIDTH = 100
HEIGHT = 100
FPS = 10
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, WIDTH)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, HEIGHT)
cap.set(cv2.CAP_PROP_FPS, FPS)
ret, frame = cap.read() #Es funktioniert oder nicht

Abhängig von den Ausgabeeinstellungen kann die Auflösung oder die FPS mit dem nächstgelegenen Wert automatisch eingestellt werden, oder cap.read () kann einen Fehler auslösen. Ich konnte über opencv nicht auf die entsprechenden Konfigurationsinformationen der USB-Kamera zugreifen, daher erhalte ich sie über den Befehl v412-ctl.

Befehl zum Ausgeben einer Liste


import subprocess
import re
cmd = 'v4l2-ctl --device /dev/video0 --list-formats-ext'
proc = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
outs_bytes = proc.communicate()[0]
outs_str = outs_bytes.decode('utf-8')
outs_str_lists = outs_str.split('\n')

d = {}
i = 0
for line in outs_str_lists:
    if "Pixel Format" in line:
        pixelformat = line.split(":")[-1].strip()
    if "Size:" in line:
        resolution = line.split()[-1]
    if "Interval" in line:
        fps = re.findall("(?<=\().+?(?=\))",line)[0].split()[0]
        _d = {"format":pixelformat,"height":resolution.split("x")[1],"width":resolution.split("x")[0],"fps":fps}
        d[i] = _d
        i +=1
print d

Ergebnis


{0: {'format': "'MJPG' (compressed)",
  'height': '2880',
  'width': '3840',
  'fps': '15.000'},
 1: {'format': "'MJPG' (compressed)",
  'height': '2880',
  'width': '3840',
  'fps': '10.000'},
 2: {'format': "'MJPG' (compressed)",
  'height': '2880',
  'width': '3840',
  'fps': '5.000'},

Nachdem die entsprechenden Einstellungen als Wörterbuchtyp erfasst wurden, ist es möglich geworden, Kamerainformationen als Variablen innerhalb des Programms zu verwenden.

Recommended Posts

Rufen Sie eine Liste der Kameraparameter ab, die mit cv2.VideoCapture festgelegt werden können, und machen Sie daraus einen Wörterbuchtyp
Liste der Farben, die mit tkinter (Denkmal) eingestellt werden können
Lassen Sie uns ein Diagramm erstellen, auf das mit IPython geklickt werden kann
[Python] Erstellen Sie ein Diagramm, das mit Plotly verschoben werden kann
Erstellen Sie eine Spinbox, die mit Tkinter in Binär angezeigt werden kann
Erstellen Sie eine Spinbox, die mit Tkinter in HEX angezeigt werden kann
Erstellen Sie ein Währungsdiagramm, das mit Plotly (1) verschoben werden kann.
Artikel, der eine Person sein kann, die den Mechanismus der API versteht und beherrscht (mit Python-Code)
Holen Sie sich eine Liste der IAM-Benutzer mit Boto3
Listen Sie Pakete auf, die mit pip aktualisiert werden können
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
So schreiben Sie einen Listen- / Wörterbuchtyp von Python3
Ein Server, der mit Flasche.py und OpenCV die Anzahl der Personen vor der Kamera zurückgibt
Erstellen Sie mit Raspberry Pi + DHT11 ganz einfach einen TweetBot, der Sie über Temperatur und Luftfeuchtigkeit informiert.
Holen Sie sich eine Liste der CloudWatch-Metriken und eine Entsprechungstabelle der Einheiteneinheiten mit Python boto
[Python] Ein Programm, um die Anzahl der Äpfel und Orangen zu ermitteln, die geerntet werden können
Formatübersicht der Formate, die mit gensim serialisiert werden können
Es scheint, dass Skeleton Tracking mit RealSense durchgeführt werden kann
NumPy-Nullen können auch bei einer Größe von 0 definiert werden
Holen Sie sich eine Liste der mit Python + Selen gekauften DMM-E-Books
Python: Erstellen Sie ein Wörterbuch aus einer Liste von Schlüsseln und Werten
[Python] Zeichnen Sie mit Plotly Höhendaten auf eine sphärische Oberfläche und zeichnen Sie einen Globus, der rund und rund gedreht werden kann
Verstehen Sie die Wahrscheinlichkeiten und Statistiken, die für das Fortschrittsmanagement mit einem Python-Programm verwendet werden können
Eine Liste von Funktionen, die mir mit 100 Numpy-Klopfen begegnet sind und ich dachte "Das ist praktisch!"
Es ist überraschend mühsam, eine Liste mit dem Datum und der Uhrzeit der letzten Anmeldung von Arbeitsbereichen abzurufen
[Python] Ein Programm, das die maximale Anzahl von Spielzeugen findet, die mit Ihrem Geld gekauft werden können
Eine Geschichte und ihre Implementierung, dass beliebige a1 * a2-Daten durch ein dreischichtiges neuronales ReLU-Netzwerk mit a1- und a2-Zwischenneuronen ohne Fehler dargestellt werden können.
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
Machen Sie ein Thermometer mit Raspberry Pi und machen Sie es im Browser Teil 4 sichtbar
Ich habe ein Shuffle gemacht, das mit Python zurückgesetzt (zurückgesetzt) werden kann
Was ist ein Hund? Volumen der GET-Anforderungen und Abfrageparameter
Vergleich von 4 Stilen, die mit set_context an seaborn übergeben werden können
Ruft eine Liste der Dateien in einem Ordner mit Python ohne Pfad ab
Ich habe einen Tri-Tree geschrieben, der für die Implementierung von Hochgeschwindigkeitswörterbüchern in D-Sprache und Python verwendet werden kann
[Python] Erstellen einer Wörterbuchtypliste, Hinzufügen / Ändern / Löschen von Elementen und Extrahieren mit einer for-Anweisung
Wie man einen Janken-Bot macht, der leicht bewegt werden kann (Kommentar)
Rufen Sie mit Python eine Liste der in der aktuellen Umgebung installierten Pakete ab
Bis Sie einen Schnappschuss des Amazon Elasticsearch-Dienstes erhalten und wiederherstellen
Erstellen Sie einen Discord Bot, der Bilder suchen und einfügen kann
Stellen Sie die Lambda-Funktion ein und lassen Sie sie mit S3-Ereignissen arbeiten!
Maximale Anzahl von Funktionsparametern, die in jeder Sprache definiert werden können
[Persönliches Memo] Holen Sie sich Daten im Web und machen Sie daraus einen DataFrame
Die Geschichte einer Soundkamera mit Touch Designer und ReSpeaker
[Python] Erstellen eines Tools, mit dem Python-Dateien mit tkinter & über den Teil, der abgefangen wurde, aufgelistet, ausgewählt und ausgeführt werden können