2017-07-12 2 views
1

Ich möchte Rechteck auf einem erkannten Auto zu zeichnen.Aber wenn ich meinen Code.Nothing zeigt. Und der Bildschirm ist nacheilend.Fahrzeugerkennung auf einem Bild statt Erkennung auf einem Video

import cv2 
cascade_src = 'cars.xml' 
img = cv2.imread('1.png') 

##print(img) 

car_cascade = cv2.CascadeClassifier(cascade_src) 
cars = car_cascade.detectMultiScale(img, 1.1, 1) 
##print cars 
for (x,y,w,h) in cars: 
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) 
    cv2.imshow('image', img) 
+0

'img' ist nur ein Bild -' Bild importieren; img = Image.open ("a-Bild-of-a-car.jpg") 'würde zum Beispiel die' cap.read() 'ersetzen. –

+1

Mögliches Duplikat von [Wie lese ich eine Bilddatei mit Python?] (Https://stackoverflow.com/questions/3735553/how-do-i-read-an-image-file-using-python) –

+0

Ich frage mich Was Kerle wie du tun würden, wenn es keine Gemeinschaft mit einem Löffel geben würde ... – Piglet

Antwort

1

lesen ein Bild und gelten die gleiche Funktion

import cv2 
cascade_src = 'cars.xml' 
img = cv2.imread('car.jpg',0) 
car_cascade = cv2.CascadeClassifier(cascade_src) 
cars = car_cascade.detectMultiScale(img, 1.1, 1) 
for (x,y,w,h) in cars: 
    cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)  

cv2.imshow('video', img) 
cv2.waitKey(0) 
+0

Vielen Dank, ich habe versucht, die Smiliar, aber ich sehe das Bild nicht. Der Bildschirm ist nacheilend. Und Bild zeigt sich nicht. Ich weiß nicht, wo das Problem ist. Etwas falsch, aber nicht wissen, wo ist :( –

+0

Wenn Sie das Bild lesen mit imread versuchen, 'print (img)' zu verwenden und sehen, dass das Bild richtig gelesen wird oder nicht. Danach versuchen, die x, y, w, h Punkte erkannt und sehen, ob sie nicht sind –

+0

Wenn ich das Bild drucke.Ich sehe die Matrix-Koordinaten.Ich auch xy drucken, die richtig viele richtig ist.Aber wenn ich Bild mit Rechteck sehen will, kommt nichts zum Bildschirm und seine Verzögerung: S –