[PYTHON] [OpenCV] Über das von imread zurückgegebene Array

1. Hintergrund

Als ich ein Programm schrieb, um ein Gesicht durch tiefes Lernen zu erkennen, musste ich ein Bild vorbereiten, das nur das Gesicht zeigt. Als Methode wurde ein Gesicht aus einem Bild erkannt, das eine Person zeigt, und dieser Teil wurde ausgeschnitten. Zu diesem Zeitpunkt wurde es mit dem Array geschnitten, das von der imread-Methode von OpenCV zurückgegeben wurde. Dieser Artikel beschreibt die von imread zurückgegebenen Sequenzen.

2. Was ist imread

Es ist eine Funktion, die ein Bild aus einer Datei lesen kann, indem das im Argument zu lesende Bild angegeben wird, z. B. image = imread ('sample.jpg'). Zu diesem Zeitpunkt wird der Pixelwert (RGB-Wert) jedes Pixels von sample.jpg durch Imread im Bild gespeichert. Führen Sie das folgende Programm aus und überprüfen Sie es.

imread_test.py


import cv2

#Bild laden
image = cv2.imread('sample.jpg')

#Geben Sie das von imread zurückgegebene Array aus
print(image)
	
#Zeigen Sie das geladene Bild an
cv2.imshow('img',image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Die Ausgabe ist wie folgt. 2020-02-16 (2).png Auf diese Weise ist ersichtlich, dass das dreidimensionale Array ausgegeben wird. Dieses Array sei ein A × B × 3D-Array. A ist die Anzahl der Pixelzeilen und B ist die Anzahl der Pixelspalten (Variablen A und B werden verwendet, da sich die Größe der Matrix in Abhängigkeit von der Größe des zu lesenden Bildes ändert). 3 ist die Helligkeit von RGB. Im obigen Bild ist viel Helligkeit vertikal ausgerichtet, dies ist jedoch der Fall Sie sind in der Reihenfolge [[[Helligkeit der 0. Zeile und 0. Spalte] ~ [Helligkeit der 0. Zeile und der Bth Spalte]] ~ [[Helligkeit der A Zeile und der 0. Spalte] ~ [Helligkeit der A Zeile und der Bth Spalte]] angeordnet. .. (Im Bild ist die 0. Zeile und 0. Spalte oben links) Daher speichert das von imread zurückgegebene Array die Helligkeit der Pixel in der Reihenfolge der Matrix.

3. Nebenbei (wie schneide ich das Bild)

Im Hintergrund von Kapitel 1 wurde, wie erläutert, das Gesichtsbild mit dem von imread zurückgegebenen Array ausgeschnitten. Zunächst werden die obere linke Position und die untere rechte Position des erfassten Gesichtsbildes erfasst. Dann war es möglich, durch Extrahieren nur des Teils des Gesichtsbildes (Helligkeit der Teilungsmatrix von der oberen linken Matrix des Gesichtsbildes zur unteren rechten Matrix) des durch Imread zurückgegebenen Arrays auszuschneiden. Ich werde die Details in einem anderen Artikel erklären.

Recommended Posts

[OpenCV] Über das von imread zurückgegebene Array
Linux: Korrigieren Sie die von malloc zurückgegebene Adresse
Überprüfen Sie den Betrieb von OpenCV3, das von Anaconda installiert wurde
Über den Test
Sortieren Sie die Elemente eines Arrays, indem Sie Bedingungen angeben
Über die Warteschlange
Die von OpenCV ausgegebene AVI-Datei kann nicht abgespielt werden
Optischer Fluss, das von OpenCV aufgenommene dynamische Bild
Lesen Sie die OpenCV-Dokumentation
Zusammenfassung über Python3 + OpenCV3
Informationen zur Entfaltungsfunktion
Über den Servicebefehl
Über die Verwirrungsmatrix
Über das Besuchermuster
Erklären Sie die assoziative Sequenz
Informationen zu der Nummer (Abschnittsnummer) in (), die vom Linux-Befehl man angezeigt wird