Created
April 21, 2012 18:05
-
-
Save xamox/2438871 to your computer and use it in GitHub Desktop.
Object Tracking with SimpleCV (White Ball)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
''' | |
This is how to track a white ball example using SimpleCV | |
The parameters may need to be adjusted to match the RGB color | |
of your object. | |
The demo video can be found at: | |
http://www.youtube.com/watch?v=jihxqg3kr-g | |
''' | |
print __doc__ | |
import SimpleCV | |
display = SimpleCV.Display() | |
cam = SimpleCV.Camera() | |
normaldisplay = True | |
while display.isNotDone(): | |
if display.mouseRight: | |
normaldisplay = not(normaldisplay) | |
print "Display Mode:", "Normal" if normaldisplay else "Segmented" | |
img = cam.getImage().flipHorizontal() | |
dist = img.colorDistance(SimpleCV.Color.BLACK).dilate(2) | |
segmented = dist.stretch(200,255) | |
blobs = segmented.findBlobs() | |
if blobs: | |
circles = blobs.filter([b.isCircle(0.2) for b in blobs]) | |
if circles: | |
img.drawCircle((circles[-1].x, circles[-1].y), circles[-1].radius(),SimpleCV.Color.BLUE,3) | |
if normaldisplay: | |
img.show() | |
else: | |
segmented.show() |
This is truly great, but my windows is lagging compared to your video. I'm going to try this on a PCDuino mini, with a wifi arduCAM once I recieve my order from China; it will be a while. I tried editing the line, as posted above and got a black screen:
if circles:
circles.draw()
img.drawCircle((circles[-1].x, circles[-1].y), circles[-1].radius(),SimpleCV.Color.BLUE,3)
I also tried it without the parameters with the same black screen result, can you please fill in what I have omitted?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
how would you change the colour of the ball it is trying to track?