Teilbild aus Bild ausschneiden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
OpenCV
User
Beiträge: 20
Registriert: Mittwoch 17. Februar 2010, 15:29

Freitag 9. April 2010, 19:13

Hallo Community!

Ich habe hier einen Code, mitdem man aus einem Bild das Gesicht erkennen und mit einem Rechteck umrahmen kann.

Code: Alles auswählen

ipl = cv.LoadImage("saved_picture.jpg",highgui.CV_LOAD_IMAGE_UNCHANGED)
        hc = cv.Load("haarcascade_frontalface_default.xml")
        faces = cv.HaarDetectObjects(ipl, hc, cv.CreateMemStorage())
        for (x,y,w,h) in faces:
            cv.Rectangle(ipl, (x,y), (x+w,y+h), 255)
            highgui.cvSaveImage("faces_detected.jpg", faces)
Nun will ich aber aus dem Bild "faces_detected.jpg", das ja das Bild mit dem Rahmen darstellt, nur das Rechteck ausschneiden, also nur das Gesicht.
Gibt es in Python einen Befehl dafür oder habt ihr Lösungsvorschläge?

Danke voraus für die Antworten.

MFG
OpenCV
Gabelmensch
User
Beiträge: 79
Registriert: Montag 12. Oktober 2009, 11:50

Freitag 9. April 2010, 19:39

Bekommst du da die Koordinaten? Wenn ja geht das mit "crop" aus der PIL.
OpenCV
User
Beiträge: 20
Registriert: Mittwoch 17. Februar 2010, 15:29

Freitag 9. April 2010, 20:30

Nein leider, cvRectangle ist eine void-Methode.
Es zeichnet lediglich das Rechteck in das Image ipl.
Danach wird es mit dem Rahmen gespeichert.

Gibt es keine Funktion, die das Rechteck erkennt und ausschneidet?
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Freitag 9. April 2010, 23:32

Was denkst du, welche Parameter cv.Rectangle benötigt?! Das sind deine Koordinaten! Ist aber doch auch offensichtlich...

BTW: Mit cv kannst du bestimmt auch ausschneiden und benötigtst nicht noch extra PIL
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
OpenCV
User
Beiträge: 20
Registriert: Mittwoch 17. Februar 2010, 15:29

Samstag 10. April 2010, 07:29

Ouh stimmt! :oops:
Vielen Dank für deine Antwort, ehrlich gesagt wär ich gestern drauf nimmer gekommen :? .

MFG
Antworten