Heim > Backend-Entwicklung > Python-Tutorial > Wie beschneide ich Bilder in OpenCV mit Python: Numpy Slicing vs. getRectSubPix?

Wie beschneide ich Bilder in OpenCV mit Python: Numpy Slicing vs. getRectSubPix?

Susan Sarandon
Freigeben: 2024-11-30 18:12:17
Original
652 Leute haben es durchsucht

How to Crop Images in OpenCV Using 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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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')
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage