ylvov писал(а):... изначально оснащу ее лазером который будет имитировать выстрел. Включаться при обнаружении и выключаться при поражении. ....
В этом варианте Вы получите идеальный лазерный дальномер, способствующий выделению объектов. Принцип его действия изложен в описании сканирующего дальномера на ИК-лазере для робота-пылесоса в соседней ветке, название не помню. Там как раз существует разнос лазера и камеры. Получите расстояние до цели и угол возвышения, при отсутствии ветра - всё что нужно для меткого выстрела если в память введены параметры траектории полёта, которые можно получить опытным путём.
ylvov писал(а):Но потом буду уже настраивать на использование пневмо ствола с шариками. Который будет иметь высокую скорость полета шарика.
Пластмассовый шарик, особенно полый, имеет очень маленькую инерцию и низкую плотность. В результате быстро теряет скорость в полёте.
Добавлено спустя 26 минут 45 секунд:elmot писал(а):... Если кто подкинет код программки с opencv, например слежение За цветным шариком, то я бы ее помучал.
http://www.youtube.com/watch?v=jihxqg3kr-gВ комментарии к видео имеется ссылка на код. Судя по интерфейсу прога работает в Линуксе:
'''
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()