Merge branch 'master' of https://gitfub.space/caspervk/nightr
This commit is contained in:
commit
d60f74e496
|
@ -34,18 +34,24 @@ strategies = {
|
|||
|
||||
@app.route("/", methods=["GET", "POST"])
|
||||
def probabilities():
|
||||
if request.method == "GET":
|
||||
logger.warning("GET request: using default context parameters")
|
||||
context = Context()
|
||||
else:
|
||||
phone_data = request.get_json(force=True)
|
||||
context = Context(**phone_data)
|
||||
logger.debug("phone_data:\n%s", json.dumps(phone_data, indent=2))
|
||||
logger.debug("Context: %s", context)
|
||||
context = Context(**phone_data["data"])
|
||||
|
||||
#logger.debug("Context: %s", context)
|
||||
|
||||
predictions: List[dict] = []
|
||||
for name, strategy in strategies.items():
|
||||
try:
|
||||
logger.debug("Executing %s..", name)
|
||||
start = timeit.default_timer()
|
||||
prediction = strategy(context)
|
||||
stop = timeit.default_timer()
|
||||
logger.debug("Execution time for %s: %ss", name, stop - start)
|
||||
logger.debug("Execution time for %s: %ss", name, round(stop - start, 3 ))
|
||||
except Exception as e:
|
||||
logger.warning("Strategy '%s' failed:", name)
|
||||
logger.exception(e)
|
||||
|
|
BIN
server/nightr/gray.png
Normal file
BIN
server/nightr/gray.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 155 B |
|
@ -1,8 +1,6 @@
|
|||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
import requests
|
||||
|
||||
import cv2
|
||||
import requests
|
||||
from pytz import timezone
|
||||
|
||||
from ..util import Context, Prediction
|
||||
|
@ -12,11 +10,10 @@ def camImgStrat(context : Context) -> Prediction:
|
|||
"""
|
||||
The contents of the camera image
|
||||
"""
|
||||
img = cv2.imread(str(Path(__file__).parent.joinpath("night.jpg")), 0)
|
||||
img = context.image
|
||||
average = img.mean(axis=0).mean(axis=0)
|
||||
p = Prediction()
|
||||
p.weight = 0.7
|
||||
|
||||
if average < 100:
|
||||
p.probability = 1.0
|
||||
p.reasons.append('Image was dark')
|
||||
|
|
|
@ -1,16 +1,30 @@
|
|||
import base64
|
||||
from dataclasses import dataclass, field
|
||||
from pathlib import Path
|
||||
from typing import List, Dict
|
||||
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
|
||||
@dataclass
|
||||
class Context:
|
||||
battery: float = 1.0
|
||||
position: Dict[str, float] = field(default_factory=lambda: {'latitude': 53.0, 'longitude': 9.0})
|
||||
image: np.ndarray = None
|
||||
|
||||
# App settings
|
||||
in_australia: bool = False
|
||||
flat_earth: bool = False
|
||||
|
||||
def __post_init__(self):
|
||||
if self.image is None: # no image given
|
||||
self.image = cv2.imread(str(Path(__file__).parent.joinpath("gray.png")))
|
||||
else:
|
||||
img_original = base64.b64decode(self.image)
|
||||
img_as_np = np.frombuffer(img_original, dtype=np.uint8)
|
||||
self.image = cv2.imdecode(img_as_np, flags=1)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Prediction:
|
||||
|
|
Loading…
Reference in New Issue
Block a user