This commit is contained in:
Casper V. Kristensen 2019-04-06 19:45:38 +02:00
parent 55977d9dc4
commit d65ea171d8
Signed by: caspervk
GPG key ID: 289CA03790535054
3 changed files with 20 additions and 8 deletions

View file

@ -42,15 +42,16 @@ def probabilities():
logger.debug("phone_data:\n%s", json.dumps(phone_data, indent=2))
context = Context(**phone_data["data"])
logger.debug("Context: %s", context)
#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)

View file

@ -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,12 +10,11 @@ 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:
if average < 100:
p.probability = 1.0
p.reasons.append('Image was dark')
else:

View file

@ -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: