398 Stimmen

Wie man ein Bild in OpenCV mit Python zuschneidet

Wie kann ich Bilder zuschneiden, wie ich es zuvor in PIL gemacht habe, mit OpenCV.

Arbeitsbeispiel für PIL

im = Image.open('0.png').convert('L')
im = im.crop((1, 1, 98, 33))
im.save('_0.png')

Aber wie kann ich das in OpenCV machen?

Das habe ich versucht:

im = cv.imread('0.png', cv.CV_LOAD_IMAGE_GRAYSCALE)
(thresh, im_bw) = cv.threshold(im, 128, 255, cv.THRESH_OTSU)
im = cv.getRectSubPix(im_bw, (98, 33), (1, 1))
cv.imshow('Img', im)
cv.waitKey(0)

Aber es funktioniert nicht.

Ich glaube, ich habe getRectSubPix falsch verwendet. Wenn das der Fall ist, bitte erklären Sie, wie ich diese Funktion korrekt verwenden kann.

0voto

Durch die Verwendung dieser Funktion können Sie ein Bild einfach zuschneiden

def cropImage(Bild, XY: tuple, WH: tuple, returnGrayscale=False):
    # Extrahiere die x-, y- und w-, h-Werte
    (x, y) = XY
    (w, h) = WH
    # Bild mit Numpy-Aufteilung zuschneiden
    zuschnitt = Bild[y:y + h, x:x + w]
    # Überprüfen, ob die returnGrayscale-Variable true ist, wenn ja, das Bild in Graustufen umwandeln
    if returnGrayscale:
        zuschnitt = cv2.cvtColor(zuschnitt, cv2.COLOR_BGR2GRAY)
    # Zugeschnittenes Bild zurückgeben
    return zuschnitt

ICH HOFFE, DASS DAS HELFEN KANN

0voto

Adesoji Alu Punkte 27
# Importiere Pakete
import cv2

import numpy as np
img = cv2.imread('skewness.png')
print(img.shape) # Drucke Bildgröße

cv2.imshow("original", img)

# Zuschneiden eines Bildes
cropped_image = img[80:280, 150:330]

# Zeige zugeschnittenes Bild an
cv2.imshow("cropped", cropped_image)

# Speichere das zugeschnittene Bild
cv2.imwrite("Zugeschnittenes Bild.jpg", cropped_image)

# Die Funktion waitKey wartet auf ein Tastaturereignis unendlich lange (wenn \f$ \texttt{delay} \leq 0 \f$) oder für delay Millisekunden, wenn sie positiv ist
cv2.waitKey(0)

# Die Funktion destroyAllWindows zerstört alle geöffneten HighGUI-Fenster
cv2.destroyAllWindows()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X