Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef1b979c53 | ||
|
|
0a76d0099e | ||
|
|
5a8940da7b |
66
.idea/workspace.xml
generated
66
.idea/workspace.xml
generated
@@ -2,7 +2,8 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="f410c5c2-3ffe-4260-93eb-e3d83256d263" name="Default Changelist" comment="">
|
<list default="true" id="f410c5c2-3ffe-4260-93eb-e3d83256d263" name="Default Changelist" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/camera.py" beforeDir="false" afterPath="$PROJECT_DIR$/camera.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/image_tools.py" beforeDir="false" afterPath="$PROJECT_DIR$/image_tools.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/index.py" beforeDir="false" afterPath="$PROJECT_DIR$/index.py" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
@@ -12,11 +13,11 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||||
<file pinned="false" current-in-tab="false">
|
<file pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/index.py">
|
<entry file="file://$PROJECT_DIR$/index.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="450">
|
<state relative-caret-position="326">
|
||||||
<caret line="42" column="46" lean-forward="true" selection-start-line="42" selection-start-column="46" selection-end-line="42" selection-end-column="46" />
|
<caret line="24" column="68" lean-forward="true" selection-start-line="24" selection-start-column="68" selection-end-line="24" selection-end-column="68" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#0#21#0" expanded="true" />
|
<element signature="e#0#21#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -29,11 +30,11 @@
|
|||||||
<provider selected="true" editor-type-id="images" />
|
<provider selected="true" editor-type-id="images" />
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file pinned="false" current-in-tab="true">
|
<file pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/camera.py">
|
<entry file="file://$PROJECT_DIR$/camera.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="150">
|
<state relative-caret-position="75">
|
||||||
<caret line="10" column="9" lean-forward="true" selection-start-line="10" selection-start-column="9" selection-end-line="10" selection-end-column="9" />
|
<caret line="5" column="65" selection-start-line="5" selection-start-column="65" selection-end-line="5" selection-end-column="65" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#0#13#0" expanded="true" />
|
<element signature="e#0#13#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -41,6 +42,11 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/capture.jpg">
|
||||||
|
<provider selected="true" editor-type-id="images" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
<file pinned="false" current-in-tab="false">
|
<file pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
@@ -62,8 +68,8 @@
|
|||||||
<file pinned="false" current-in-tab="false">
|
<file pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/image_tools.py">
|
<entry file="file://$PROJECT_DIR$/image_tools.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="45">
|
<state relative-caret-position="30">
|
||||||
<caret line="3" column="23" selection-start-line="3" selection-start-column="23" selection-end-line="3" selection-end-column="23" />
|
<caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -104,11 +110,11 @@
|
|||||||
<option value="$PROJECT_DIR$/image_diff_color.py" />
|
<option value="$PROJECT_DIR$/image_diff_color.py" />
|
||||||
<option value="$PROJECT_DIR$/.gitignore" />
|
<option value="$PROJECT_DIR$/.gitignore" />
|
||||||
<option value="$PROJECT_DIR$/config.py" />
|
<option value="$PROJECT_DIR$/config.py" />
|
||||||
<option value="$PROJECT_DIR$/image_tools.py" />
|
|
||||||
<option value="$PROJECT_DIR$/example.env" />
|
<option value="$PROJECT_DIR$/example.env" />
|
||||||
<option value="$PROJECT_DIR$/index.py" />
|
|
||||||
<option value="$PROJECT_DIR$/.env" />
|
<option value="$PROJECT_DIR$/.env" />
|
||||||
<option value="$PROJECT_DIR$/camera.py" />
|
<option value="$PROJECT_DIR$/camera.py" />
|
||||||
|
<option value="$PROJECT_DIR$/index.py" />
|
||||||
|
<option value="$PROJECT_DIR$/image_tools.py" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -251,16 +257,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/index.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="450">
|
|
||||||
<caret line="42" column="46" lean-forward="true" selection-start-line="42" selection-start-column="46" selection-end-line="42" selection-end-column="46" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#21#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/.env">
|
<entry file="file://$PROJECT_DIR$/.env">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="45">
|
<state relative-caret-position="45">
|
||||||
@@ -268,22 +264,32 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/image_tools.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="45">
|
|
||||||
<caret line="3" column="23" selection-start-line="3" selection-start-column="23" selection-end-line="3" selection-end-column="23" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/camera.py">
|
<entry file="file://$PROJECT_DIR$/camera.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="150">
|
<state relative-caret-position="75">
|
||||||
<caret line="10" column="9" lean-forward="true" selection-start-line="10" selection-start-column="9" selection-end-line="10" selection-end-column="9" />
|
<caret line="5" column="65" selection-start-line="5" selection-start-column="65" selection-end-line="5" selection-end-column="65" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#0#13#0" expanded="true" />
|
<element signature="e#0#13#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/image_tools.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="30">
|
||||||
|
<caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/index.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="326">
|
||||||
|
<caret line="24" column="68" lean-forward="true" selection-start-line="24" selection-start-column="68" selection-end-line="24" selection-end-column="68" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#0#21#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
24
camera.py
24
camera.py
@@ -2,22 +2,16 @@ import pygame
|
|||||||
import pygame.camera
|
import pygame.camera
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import cv2
|
|
||||||
|
|
||||||
def capture(camera_stream = 0, camera_res = (1920, 1080)):
|
def capture(camera_stream = "/dev/video0", camera_res = (640, 480)):
|
||||||
cam = cv2.VideoCapture(camera_stream)
|
pygame.camera.init()
|
||||||
s, img = cam.read()
|
pygame.camera.list_cameras()
|
||||||
|
cam = pygame.camera.Camera(camera_stream, camera_res)
|
||||||
if s:
|
cam.start()
|
||||||
cv2.imwrite('./capture.jpg', img)
|
time.sleep(5)
|
||||||
# pygame.camera.init()
|
img = cam.get_image()
|
||||||
# pygame.camera.list_cameras()
|
pygame.image.save(img, './capture.jpg')
|
||||||
# cam = pygame.camera.Camera(camera_stream, camera_res)
|
cam.stop()
|
||||||
# cam.start()
|
|
||||||
# time.sleep(5)
|
|
||||||
# img = cam.get_image()
|
|
||||||
# pygame.image.save(img, './capture.jpg')
|
|
||||||
# cam.stop()
|
|
||||||
return './capture.jpg'
|
return './capture.jpg'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
def average_color(x, y, w, h, image):
|
def average_color(x, y, w, h, image):
|
||||||
r, g, b = 0, 0, 0
|
r, g, b = 0, 0, 0
|
||||||
count = 0
|
count = 0
|
||||||
print([x, y, w, h])
|
|
||||||
for s in range(x, x + w + 1):
|
for s in range(x, x + w + 1):
|
||||||
for t in range(y, y + h + 1):
|
for t in range(y, y + h + 1):
|
||||||
pixlr, pixlg, pixlb = image[s, t]
|
pixlr, pixlg, pixlb = image[s, t]
|
||||||
|
|||||||
3
index.py
3
index.py
@@ -40,6 +40,7 @@ def poll():
|
|||||||
color_reference = image_tools.average_color(stall_obj['locationX'], stall_obj['locationY'], stall_obj['width'], stall_obj['height'], reference)
|
color_reference = image_tools.average_color(stall_obj['locationX'], stall_obj['locationY'], stall_obj['width'], stall_obj['height'], reference)
|
||||||
color_compare = image_tools.average_color(stall_obj['locationX'], stall_obj['locationY'], stall_obj['width'], stall_obj['height'], img)
|
color_compare = image_tools.average_color(stall_obj['locationX'], stall_obj['locationY'], stall_obj['width'], stall_obj['height'], img)
|
||||||
stall_occupied = image_tools.threshold(image_tools.differences(color_reference, color_compare), float(doc_conf['e_hat']))
|
stall_occupied = image_tools.threshold(image_tools.differences(color_reference, color_compare), float(doc_conf['e_hat']))
|
||||||
|
print(doc_conf['e_hat'])
|
||||||
stall_obj['open'] = not stall_occupied
|
stall_obj['open'] = not stall_occupied
|
||||||
print("Updated: "+stall.id)
|
print("Updated: "+stall.id)
|
||||||
|
|
||||||
@@ -51,4 +52,6 @@ start_time = time.time()
|
|||||||
while True:
|
while True:
|
||||||
poll()
|
poll()
|
||||||
poll_time = float(os.getenv('POLL_FREQUENCY'))
|
poll_time = float(os.getenv('POLL_FREQUENCY'))
|
||||||
|
doc_conf = db.collection('configurations').document(os.getenv('CONFIG_CODE')).get().to_dict()
|
||||||
|
print(doc_conf)
|
||||||
time.sleep(poll_time - ((time.time() - start_time) % poll_time))
|
time.sleep(poll_time - ((time.time() - start_time) % poll_time))
|
||||||
|
|||||||
Reference in New Issue
Block a user