Seite 1 von 1

Bild aktualiseren mit OpenCV

Verfasst: Dienstag 18. Dezember 2018, 17:09
von CopenV
Hallo,

Ich bin Python Neuling.
Derzeit versuche ich mich an einem Programm zur Objekterkennung mithilfe einer vorimplementieren Funktion, welche bei Aufruf mir die x-y Koordinaten wiedergibt. Dadraus will ich an den Stellen Rechtecke zeigen. Der Benutzer soll eine Schwelle für die Erkennung auswählen können und nach bestätigen dieser, soll das Bild geupdatet werden.
Leider gibt es folgende Probleme
-Während des Aufrufes des Erkennungsprogramms hängt das Bildfenster sich auf, es funktioniert erst wieder nachdem es beendet ist
-Es wird nicht geupdatet, sondern es wird nur über das zuletzt angezeigte Bild mti den Rechtecken "drübergezeichnet"


Code: Alles auswählen

import cv2
img = cv2.imread('test.jpg', cv2.IMREAD_COLOR) 
cv2.imshow('image', img) 
cv2.waitKey(0)
while True:
    threshold=float(input("Schwelle eingeben: "))
    results=Objekterkennugn(threshold)
    img_neu=img
    for i in range(len(result)):
        img_neu = cv2.rectangle(img,(result[i]['topleft']['x'],result[i]['topleft']['y']), (result[i]['bottomright']['x'],result[i]['bottomright']['y']),  (0, 255, 0), 3)  
    cv2.imshow('image', img_neu) 
    cv2.waitKey(0)

Re: Bild aktualiseren mit OpenCV

Verfasst: Dienstag 18. Dezember 2018, 17:20
von __deets__
Da ist so einiges im Argen:
- um Zuweisungen macht man Leerzeichen, so ist das schwer lesbar.
- statt einen index zu erzeugen, und ueber den zu iterieren, iterient man *gleich* ueber die Elemente einer Liste

Code: Alles auswählen

for item in result:
     cv2.rectanggle(img, item['topleft'], ...)
- img_neu=img ist KEINE Kopie, sondern jetzt hast du einfach zwei Namen, die auf das gleiche Objekt zeigen. Benutz

Code: Alles auswählen

img_neu = img.copy()
- die rectangle-Funktion modifiziert das uebergebene Bild. Selbst wenn sie das nicht taete, wuerdest du dann jedes mal ein einzelnes Rechteck zeichnen.
- statt den Wert per input abzufragen, koenntest du den Wert per Einstellregler aus der highgui erfassen.
- wenn Objekterkennung lange laeuft, dann wird nichts upgedated. Wenn du das willst, musst du uns zeigen, was das wie tut.

Re: Bild aktualiseren mit OpenCV

Verfasst: Dienstag 18. Dezember 2018, 21:00
von ThomasL
Eine gute Webseite rund um OpenCV findest du hier https://www.pyimagesearch.com