Ich werde erklären, wie man ein Bild mit OpenCV zuschneidet. Dies ist eine Fortsetzung von Letztes Mal. Wenn Sie also Fragen in diesem Artikel haben, schauen Sie bitte.
MacOS Mojave Python 3.7
Verwenden Sie das Bild unten (neko.jpg).
Sie können die Größe des Bildes mit dem folgenden Code überprüfen.
python
#Bibliothek laden
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("neko.jpg ")
print(img.shape)
Wenn ich den obigen Code ausführe, erhalte ich die folgenden Ergebnisse:
(900, 1600, 3)
Dies bedeutet 900 Pixel vertikal, 1600 Pixel horizontal und 3 Kanäle. Im Fall eines Farbbildes beträgt die Anzahl der Kanäle 3, da es sich um GBR handelt. Bei Graustufen beträgt die Anzahl der Kanäle 1, da es sich nur um den Weißgrad handelt.
In Opencv sind die Koordinatenachsen des Bildes wie folgt.
Wenn die Position (x, y) ist, befindet sich der Ursprung (0,0) oben links, wie in der Abbildung gezeigt. Beachten Sie beim Umgang mit Bildern, dass die Abwärtsrichtung die positive Richtung der y-Achse ist. Die Größe dieses Bildes beträgt vertikal 900 Pixel und horizontal 1600 Pixel, sodass die x- und y-Koordinaten der Endpixel des Bildes 899 bzw. 1599 betragen. Der Grund, warum es nicht 900 oder 1600 wird, ist, dass es vom Ursprung 0 zählt.
Wenn Sie die Koordinaten des Bildes wie folgt angeben, können Sie den Farbwert dieser Position abrufen.
python
img = cv2.imread("neko.jpg ")
print(img[450,800])
Ausgabe
[153 161 190]
Dies zeigt an, dass die Farbe der Position an den Koordinaten (450.800) (R, G, B) = (153, 161, 190) ist. Sie können auch mehrere Koordinaten angeben, indem Sie die folgenden Schritte ausführen.
print(img[450:650,800:1000])
[[[153 161 190]
[153 161 190]
[152 160 189]
...
[169 178 205]
[169 178 205]
[169 178 205]]
[[152 160 189]
[152 160 189]
[153 161 190]
...
[169 178 205]
[169 178 205]
[169 178 205]]
[[151 159 188]
[152 160 189]
[154 162 191]
...
[171 178 205]
[172 179 206]
[172 179 206]]
...
Unten weggelassen. .. ..
Stellen Sie sich das ":" in [] als dasselbe wie das "~" vor, das wir normalerweise verwenden, um einen Bereich von Zahlen darzustellen. Im obigen Beispiel werden die Farbinformationen im Bereich von Koordinaten (450.800) bis (649.999) ausgegeben.
Wenn Sie den angegebenen Bildbereich in ein anderes Objekt einfügen, können Sie das Bild mit ausgeschnittener Position abrufen.
python
#Bibliothek laden
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("neko.jpg ")
#Img das angegebene Pixel_Ersatz für Trimmung
img_trim = img[450:650,800:1000]
#Farbe ändern
img_trim = cv2.cvtColor(img_trim, cv2.COLOR_BGR2RGB)
#Anzeige
plt.imshow(img_trim)
plt.show()
Wenn das obige Bild ausgegeben wird, ist es erfolgreich! (Da es sich um eine Tatami-Matte handelt, ist es schwierig zu sagen, ob es ausgeschnitten ist ... lol) Das nächste Mal möchte ich die Arbeit des Knetens erklären, wie das Skalieren und Umkehren des Bildes: erröten:
Wenn Sie verschiedene Dinge tun möchten, wie Informationen zu zukünftigen Artikeln sowie Fragen und Antworten, folgen Sie mir bitte ...! : erleichtert: https://twitter.com/ryuji33722052