2016-04-20 3 views
1

Im Moment habe ich ein Skript in Python, mit dem ich einen farbigen Ball in einer Videodatei verfolgen kann. Wir testen die Geschwindigkeit eines Roboters mit einer stationären Kamera. Daher muss ich die Farbe nur über einen kleinen Bereich der tatsächlichen Bildfläche des Videos verfolgen und der Rest kann verworfen/ignoriert werden. Im Moment ist mein Prozess, um die Videotests auf nur das zu beschränken, was ich verfolgen muss, aber mit 15 Versuchen pro Test wird es sehr zeitaufwendig.Black-out-Bereiche von Video Frame in Python

black out the sides of the video not within the blue lines

Grundsätzlich wie würde ich mich über „Verdunklung“ zwei Seiten der Gegend Video, so dass die Farbverfolgung nicht eingeleitet wird, bis der Roboter den gewünschten Bereich betritt?

Antwort

0

Da Ihre Kamera stationär ist, gehe ich davon aus, dass sich die blauen Bandlinien nicht im Video-Frame bewegen. Mit diesem gesagt, das ist der Algorithmus, den Sie folgen:

-berechnen Sie die ungefähre Region of Interest Rechteck in Ihrem Bild. Sie müssten die ungefähren Werte von - 1. Der obere linke Punkt, von dem aus die Verfolgung beginnen soll, sagen (x, y) und die Höhe und Breite des zu verfolgenden Rechtecks. Verwenden Sie das Bild unten als Referenz. enter image description here

Sobald Sie x haben, y, w, h, kann man den Teil des Bildes innerhalb des Rechtecks ​​extrahiert, wie gezeigt:

img2=img[x:x+w,y:y+h] 

Sie können nun einen Standardfarbfilter auf img2 laufen, zu verfolgen, der Ball oben auf dem Bot

+0

Das war nicht genau das, was ich suchte, aber es funktioniert sehr gut und genau so. Vielen Dank! – abercegeay