Ich versuche mich zur Zeit mit openCV Konturen zu erkennen. Jetzt hab ich ein Problem wo ich selber nichtmehr weiterkomme und im Netz auch nicht wirklich was hilfreiches finden konnte.
Und zwar wandel ich ein Bild in den HSV Farbraum um und möchte dann .inRange drauf anwenden. Eigentlich so wie in dem Beispiel dort: https://docs.opencv.org/3.4/da/d97/tuto ... Range.html
Mein Code sieht so aus:
Code: Alles auswählen
lowerBound = (0, 0, 13)
upperBound = (156, 177, 255)
...
hsv = cv2.cvtColor(rawframe, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv, lowerBound, upperBound)
Code: Alles auswählen
lowbnd_h_raw = (ConfigSectionMap("workingArea")['hsv_lowerbound_h'])
lowbnd_s_raw = (ConfigSectionMap("workingArea")['hsv_lowerbound_s'])
lowbnd_v_raw = (ConfigSectionMap("workingArea")['hsv_lowerbound_v'])
Setz ich wieder nur die Zahlen/Variablen (lowerBound = (0, 0, 13) / upperBound = (156, 177, 255) direkt im Code läuft es wunderbar. Das einlesen der Zahlen aus der config funktioniert auch - also ich kann sie mir nach dem einlesen mit print() ausgeben lassen.
Ich war der Meinung das wenn ich den Wert der lowbnd_h/s/v_raw in int/np.uint8/np.float32 caste und die in ein Array reinsteck das dies von cv2.inRange angenommen werden sollte. Ich hab da jetzt ewig rum probiert und komm zu keiner Lösung. Das ganze mach ich übrigens auf nem Raspberry Pi mit openCV 3.4
Also ich bin für jede Hilfe Dankbar!
Viele Grüße
Cynob