Skip to content

Commit 489d443

Browse files
committed
-
1 parent b6bd867 commit 489d443

File tree

6 files changed

+13
-15
lines changed

6 files changed

+13
-15
lines changed

camera.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ def run(self):
6363
#print "run.1"
6464
self._image_lock.acquire()
6565
self._camera.grab_one()
66+
self._image_lock.release()
6667
#print "run.2: " + str(time.time()-ts)
6768
#self.save_image(image.Image(self._camera.get_image_bgr()).open().binarize().to_jpeg())
6869
self.save_image(self._camera.get_image_jpeg())
6970
#print "run.3: " + str(time.time()-ts)
70-
self._image_lock.release()
7171
else:
7272
time.sleep(CAMERA_REFRESH_INTERVAL - (time.time() - self._image_time))
7373

@@ -84,7 +84,7 @@ def save_image(self, image_jpeg):
8484
self._image_time=time.time()
8585

8686
def set_text(self, text):
87-
self._camera.set_overlay_text(text)
87+
self._camera.set_overlay_text(str(text))
8888

8989
def get_next_photo_index(self):
9090
last_photo_index = 0
@@ -204,23 +204,20 @@ def find_signal(self):
204204
return angle
205205

206206
def find_face(self):
207-
#print "face"
208207
faceX = None
209-
ts = time.time()
210208
self._image_lock.acquire()
211209
img = self.get_image(0)
212-
faces = img.find_faces()
210+
ts = time.time()
211+
faces = img.grayscale().find_faces()
212+
print "face.detect: " + str(time.time() - ts)
213+
self._image_lock.release()
213214
print faces
214215
if len(faces):
215-
# Get the largest face
216+
# Get the largest face, face is a rectangle
216217
bigFace = faces[0]
217-
# Draw a green box around the face
218-
#bigFace.draw()
219-
faceX = (bigFace.center[0] * 100) / 160
218+
center = bigFace[0]+(bigFace[2]/2)
219+
faceX = (center * 100) / 160
220220

221-
#self.save_image(img)
222-
self._image_lock.release()
223-
print "face: " + str(time.time() - ts)
224221
return faceX
225222

226223
def path_ahead(self):

coderbot.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"move_tr_speed": "75", "move_fw_elapse": "1.5", "show_page_program": "true", "load_at_start": "", "move_tr_elapse": "1", "sound_start": "$startup.mp3", "sound_stop": "$shutdown.mp3", "camera_exposure_mode": "auto", "prog_video_rec": "true", "show_control_move_commands": "true", "prog_level": "basic_move", "prog_scrollbars": "true", "ctrl_fw_speed": "100", "move_fw_speed": "100", "sound_shutter": "$shutter.mp3", "show_page_prefs": "true", "prog_maxblocks": "-1", "ctrl_hud_image": "coderbot_hud_2.png", "move_motor_mode": "dc", "ctrl_fw_elapse": "-1", "ctrl_tr_elapse": "-1", "show_page_control": "true", "ctrl_tr_speed": "80"}
1+
{"move_tr_speed": "75", "move_fw_elapse": "1.5", "show_page_program": "true", "load_at_start": "", "move_tr_elapse": "1", "sound_start": "$startup.mp3", "sound_stop": "$shutdown.mp3", "camera_exposure_mode": "auto", "prog_video_rec": "true", "show_control_move_commands": "true", "prog_level": "std", "prog_scrollbars": "true", "ctrl_fw_speed": "100", "move_fw_speed": "100", "sound_shutter": "$shutter.mp3", "show_page_prefs": "true", "prog_maxblocks": "-1", "ctrl_hud_image": "", "move_motor_mode": "dc", "ctrl_fw_elapse": "-1", "ctrl_tr_elapse": "-1", "show_page_control": "true", "ctrl_tr_speed": "80"}

data/program_face.data

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"dom_code": "<xml xmlns=\"http://www.w3.org/1999/xhtml\"><block type=\"controls_whileUntil\" id=\"1\" inline=\"false\" x=\"-17\" y=\"-3\"><field name=\"MODE\">WHILE</field><value name=\"BOOL\"><block type=\"logic_boolean\" id=\"2\"><field name=\"BOOL\">TRUE</field></block></value><statement name=\"DO\"><block type=\"variables_set\" id=\"3\" inline=\"true\"><field name=\"VAR\">faccia_x</field><value name=\"VALUE\"><block type=\"coderbot_adv_findFace\" id=\"4\"></block></value><next><block type=\"text_print\" id=\"5\" inline=\"false\"><value name=\"TEXT\"><block type=\"variables_get\" id=\"6\"><field name=\"VAR\">faccia_x</field></block></value><next><block type=\"controls_if\" id=\"7\" inline=\"false\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"8\" inline=\"true\"><field name=\"OP\">GTE</field><value name=\"A\"><block type=\"variables_get\" id=\"9\"><field name=\"VAR\">faccia_x</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"10\"><field name=\"NUM\">0</field></block></value></block></value><statement name=\"DO0\"><block type=\"controls_if\" id=\"11\" inline=\"false\"><mutation elseif=\"1\"></mutation><value name=\"IF0\"><block type=\"logic_compare\" id=\"12\" inline=\"true\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\"13\"><field name=\"VAR\">faccia_x</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"14\"><field name=\"NUM\">40</field></block></value></block></value><statement name=\"DO0\"><block type=\"coderbot_adv_move\" id=\"15\" inline=\"true\"><field name=\"ACTION\">LEFT</field><value name=\"SPEED\"><block type=\"math_number\" id=\"16\"><field name=\"NUM\">100</field></block></value><value name=\"ELAPSE\"><block type=\"math_number\" id=\"17\"><field name=\"NUM\">0.1</field></block></value></block></statement><value name=\"IF1\"><block type=\"logic_compare\" id=\"18\" inline=\"true\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"variables_get\" id=\"19\"><field name=\"VAR\">faccia_x</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"20\"><field name=\"NUM\">60</field></block></value></block></value><statement name=\"DO1\"><block type=\"coderbot_adv_move\" id=\"21\" inline=\"true\"><field name=\"ACTION\">RIGHT</field><value name=\"SPEED\"><block type=\"math_number\" id=\"22\"><field name=\"NUM\">100</field></block></value><value name=\"ELAPSE\"><block type=\"math_number\" id=\"23\"><field name=\"NUM\">0.1</field></block></value></block></statement></block></statement></block></next></block></next></block></statement></block></xml>", "code": "faccia_x = None\n\n\nwhile True:\n get_prog_eng().check_end()\n faccia_x = get_cam().find_face()\n get_cam().set_text(faccia_x)\n if faccia_x >= 0:\n if faccia_x < 40:\n get_bot().left(speed=100, elapse=0.1)\n elif faccia_x > 60:\n get_bot().right(speed=100, elapse=0.1)\n", "name": "face"}

static/images/icons/favicon.ico

32.2 KB
Binary file not shown.

templates/main.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<meta charset="utf-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1">
66
<title>CoderBot</title>
7-
<link rel="shortcut icon" href="favicon.ico">
7+
<link rel="icon" type="image/png" href="/images/coderbot_logo_79.png"/>
88
<link rel="stylesheet" href="../css/jquery.mobile-1.4.5.min.css">
99
<link rel="stylesheet" href="../css/coderbot.css">
1010
{%include "config_params.html"%}

viz/image.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
MIN_MATCH_COUNT = 10
1010

1111
class Image():
12-
_face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
12+
_face_cascade = cv2.CascadeClassifier('/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml')
1313
_kernel = np.ones((3,3),np.uint8)
1414

1515
def __init__(self, array):

0 commit comments

Comments
 (0)