Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Aguiar <alanjas@hotmail.com>2012-10-23 10:05:17 (GMT)
committer Alan Aguiar <alanjas@hotmail.com>2012-10-23 10:05:17 (GMT)
commitef8d0d0f2a63c3cb1edae57e95f2cb6a4d5b0b65 (patch)
treefe24b614a3d802afb995fb1afda2506461d6c87a
parent3e05094fce72957b907dabd25842aeff143c7831 (diff)
some fixes, now works again
-rwxr-xr-xactivity.py54
-rwxr-xr-xfollowme.py37
-rwxr-xr-xmain.py35
3 files changed, 88 insertions, 38 deletions
diff --git a/activity.py b/activity.py
index 88d4e91..9b6fdaf 100755
--- a/activity.py
+++ b/activity.py
@@ -55,6 +55,8 @@ class Activity(activity.Activity):
self.show_capture = True
self.calibrating = True
self.use_threshold_view = True
+ self.use_outline_view = True
+ self.use_rects_view = True
self.mode = 'RGB'
self.followme_activity = main.Main(self)
@@ -353,7 +355,7 @@ class Activity(activity.Activity):
item3 = gtk.ToolItem()
label3 = gtk.Label()
- label3.set_text(_('Show threshold view'))
+ label3.set_text(_('Threshold view'))
item3.add(label3)
barra_colors.insert(item3, -1)
@@ -362,6 +364,36 @@ class Activity(activity.Activity):
threshold_view.set_tooltip(_('Yes'))
barra_colors.insert(threshold_view, -1)
+ separator3 = gtk.SeparatorToolItem()
+ separator3.props.draw = True
+ barra_colors.insert(separator3, -1)
+
+ item4 = gtk.ToolItem()
+ label4 = gtk.Label()
+ label4.set_text(_('Outline'))
+ item4.add(label4)
+ barra_colors.insert(item4, -1)
+
+ outline_view = ToolButton('media-playback-stop')
+ outline_view.connect('clicked', self.outline_view)
+ outline_view.set_tooltip(_('Yes'))
+ barra_colors.insert(outline_view, -1)
+
+ separator4 = gtk.SeparatorToolItem()
+ separator4.props.draw = True
+ barra_colors.insert(separator4, -1)
+
+ item5 = gtk.ToolItem()
+ label5 = gtk.Label()
+ label5.set_text(_('Rects'))
+ item5.add(label5)
+ barra_colors.insert(item5, -1)
+
+ rects_view = ToolButton('media-playback-stop')
+ rects_view.connect('clicked', self.rects_view)
+ rects_view.set_tooltip(_('Yes'))
+ barra_colors.insert(rects_view, -1)
+
barra_colors.show_all()
colors_button = ToolbarButton(label=_('Colors'),
page=barra_colors,
@@ -410,6 +442,26 @@ class Activity(activity.Activity):
button.set_icon('media-playback-stop')
button.set_tooltip(_('No'))
+ def outline_view(self, button):
+ self.use_outline_view = not self.use_outline_view
+ self.followme_activity.put_outline_view(self.use_outline_view)
+ if not self.use_outline_view:
+ button.set_icon('media-playback-start')
+ button.set_tooltip(_('Yes'))
+ else:
+ button.set_icon('media-playback-stop')
+ button.set_tooltip(_('No'))
+
+ def rects_view(self, button):
+ self.use_rects_view = not self.use_rects_view
+ self.followme_activity.put_rects_view(self.use_rects_view)
+ if not self.use_rects_view:
+ button.set_icon('media-playback-start')
+ button.set_tooltip(_('Yes'))
+ else:
+ button.set_icon('media-playback-stop')
+ button.set_tooltip(_('No'))
+
def put_color(self, color):
self.colorC = color
self.red_spin.props.value = self.colorC[0]
diff --git a/followme.py b/followme.py
index a288a29..c1833d1 100755
--- a/followme.py
+++ b/followme.py
@@ -33,7 +33,7 @@ from gettext import gettext as _
class FollowMe(object):
- def __init__(self, mode, parent):
+ def __init__(self, parent):
pygame.init()
pygame.camera.init()
@@ -42,19 +42,17 @@ class FollowMe(object):
else:
self.display = pygame.display.set_mode((1200, 900))
self.use_threshold_view = True
+ self.use_outline_view = True
+ self.use_rects_view = True
self.tamanioc = (320, 240)
self.brightness = 128
self.cam = None
- self.get_camera(mode)
+ self.get_camera()
self.calc((960, 720))
self.show_grid = False
- def get_camera(self, mode):
- if self.cam:
- try:
- self.cam.stop()
- except:
- print _('Error in stop camera')
+ def get_camera(self, mode='RGB'):
+ self.stop_camera()
self.lcamaras = pygame.camera.list_cameras()
if self.lcamaras:
self.cam = pygame.camera.Camera(self.lcamaras[0], self.tamanioc, mode)
@@ -70,6 +68,14 @@ class FollowMe(object):
else:
print _('No cameras was found')
+ def stop_camera(self):
+ if self.cam:
+ try:
+ self.cam.stop()
+ self.cam = None
+ except:
+ print _('Error in stop camera')
+
def set_camera_flags(self):
self.cam.set_controls(True, False, self.brightness)
res = self.cam.get_controls()
@@ -130,20 +136,15 @@ class FollowMe(object):
return conexa
- def show_position(self):
-
+ def generate_capture_to_show(self):
if self.use_threshold_view:
self.captura_to_show = pygame.transform.scale(self.captura_aux, (int(self.show_size[0]), int(self.show_size[1])))
else:
self.captura_to_show = pygame.transform.scale(self.captura, (int(self.show_size[0]), int(self.show_size[1])))
- def show_position2(self, mask, color):
-
+ def show_centroid_position(self, mask):
x, y = mask.centroid()
-
pygame.draw.rect(self.captura_to_show, (255,0,0), (x*self.c1, y*self.c2, 20, 20), 16)
- self.show_outline(mask)
- self.show_rects(mask)
def show_outline(self, mask):
points = mask.outline()
@@ -155,13 +156,11 @@ class FollowMe(object):
for r in rects:
pygame.draw.rect(self.captura_to_show, (0,255,0), (r[0]*self.c1, r[1]*self.c2, r[2]*self.c1, r[3]*self.c2), 5)
- def show_position3(self, color):
+ def show_in_screen(self, color):
self.display.fill((84,185,72))
-
if (self.show_grid == True):
self.draw_grid()
self.display.blit(self.captura_to_show, (self.xblit, self.yblit))
- #self.display.fill(color, (0,0,120,120))
pygame.draw.rect(self.display, (0,0,0), (0,0,120,120), 4)
def draw_grid(self):
@@ -181,5 +180,3 @@ class FollowMe(object):
self.display.fill((84, 185, 72))
-
-
diff --git a/main.py b/main.py
index cc3c856..bfe2de3 100755
--- a/main.py
+++ b/main.py
@@ -78,6 +78,12 @@ class Main:
def put_threshold_view(self, view):
self.c.use_threshold_view = view
+ def put_outline_view(self, outline):
+ self.c.use_outline_view = outline
+
+ def put_rects_view(self, rects):
+ self.c.use_rects_view = rects
+
def put_brightness(self, brightness):
self.c.brightness = brightness
self.c.set_camera_flags()
@@ -90,16 +96,13 @@ class Main:
self.show_size = (960, 720)
self.show = True
self.mode = 'RGB'
- self.c = FollowMe(self.mode, self.parent)
+ self.c = FollowMe(self.parent)
if (self.c.cam == None):
while gtk.events_pending():
gtk.main_iteration()
for event in pygame.event.get():
if event.type == pygame.QUIT:
- # salgo
break
- #elif event.type == pygame.VIDEORESIZE:
- # pygame.display.set_mode(event.size, pygame.RESIZABLE)
else:
run = True
while run:
@@ -108,36 +111,34 @@ class Main:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
- #elif event.type == pygame.VIDEORESIZE:
- # pygame.display.set_mode(event.size, pygame.RESIZABLE)
if (self.calibrating):
self.colorC = self.c.calibrate()
if self.parent:
self.parent.put_color(self.colorC)
else:
- pos = self.c.get_position(self.colorC, self.threshold, self.pixels)
- self.c.show_position()
- if self.show and not(pos == -1):
- #for p in pos:
- self.c.show_position2(pos, self.colorC)
- self.c.show_position3(self.colorC)
+ mask = self.c.get_position(self.colorC, self.threshold, self.pixels)
+ self.c.generate_capture_to_show()
+ if self.show:
+ self.c.show_centroid_position(mask)
+ if self.c.use_outline_view:
+ self.c.show_outline(mask)
+ if self.c.use_rects_view:
+ self.c.show_rects(mask)
+ self.c.show_in_screen(self.colorC)
if (self.r != None and self.r.modules != []):
self.r.move_robot(pos)
pygame.display.flip()
self.clock.tick(10)
+ self.c.stop_camera()
+
if self.r:
if self.r.butia:
self.r.butia.close()
self.r.butia.closeService()
if self.r.bobot:
self.r.bobot.kill()
- if self.c.cam:
- try:
- self.cam.stop()
- except:
- pass