Heim >Backend-Entwicklung >Python-Tutorial >Wie beschneide ich Bilder in OpenCV mit Python: Numpy Slicing vs. getRectSubPix?
So beschneiden Sie Bilder in OpenCV mit Python
Bei der Bildverarbeitung ist das Zuschneiden ein grundlegender Vorgang, um bestimmte Bereiche aus einem Bild zu extrahieren. OpenCV, eine beliebte Computer-Vision-Bibliothek in Python, bietet verschiedene Methoden zum Zuschneiden, einschließlich Numpy-Slicing und Funktionen wie getRectSubPix.
Numpy-Slicing zum Zuschneiden verwenden
Die einfachste und Der einfachste Ansatz zum Zuschneiden von Bildern in OpenCV ist die Verwendung von Numpy Slicing. Numpy-Arrays stellen Bilder in OpenCV dar, und Sie können mithilfe von Slicing-Vorgängen auf bestimmte Bereiche des Arrays zugreifen.
import cv2 # Read the original image img = cv2.imread("image.jpg") # Crop a region using numpy slicing cropped_img = img[y:y+h, x:x+w] # Display the cropped image cv2.imshow('Cropped Image', cropped_img) cv2.waitKey(0)
Verwenden von getRectSubPix zum Zuschneiden
In bestimmten Szenarien, z Wenn ein präzises Zuschneiden von Subpixeln erforderlich ist, kann die getRectSubPix-Funktion von OpenCV verwendet werden. Es extrahiert einen rechteckigen Teil des Bildes und interpoliert dabei die Pixelwerte.
import cv2 # Read the original image img = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE) # Crop a region using getRectSubPix cropped_img = cv2.getRectSubPix(img, (w, h), (x, y)) # Display the cropped image cv2.imshow('Cropped Image', cropped_img) cv2.waitKey(0)
Beispielcode (PIL vs. OpenCV)
Um den Unterschied zwischen PIL und zu veranschaulichen OpenCV, erstellen wir ein Beispiel, das dem im bereitgestellten ähnelt Frage.
PIL:
import PIL.Image as Image im = Image.open('0.png').convert('L') im = im.crop((1, 1, 98, 33)) im.save('_0.png')
OpenCV:
import cv2 # Read the image img = cv2.imread('0.png', cv2.IMREAD_GRAYSCALE) # Crop the image using numpy slicing cropped_img = img[1:33, 1:98] # Save the cropped image cv2.imwrite('_0.png', cropped_img)
In diesem Beispiel verwendet OpenCV Numpy Slicing um das durch die Koordinaten (1, 1, 98, 33) angegebene Bild zuzuschneiden. Das resultierende zugeschnittene Bild wird als „_0.png“ gespeichert.
Das obige ist der detaillierte Inhalt vonWie beschneide ich Bilder in OpenCV mit Python: Numpy Slicing vs. getRectSubPix?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!