From eea7c6c7eff95de42bcba6145b54f12ffa58dd5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20W=C3=B6lfer?= Date: Mon, 24 Jun 2019 21:23:42 +0200 Subject: [PATCH] Linting --- shenzhen_solitaire/cv/adjustment.py | 65 +++++++++++++--------------- shenzhen_solitaire/cv/card_finder.py | 4 +- 2 files changed, 31 insertions(+), 38 deletions(-) diff --git a/shenzhen_solitaire/cv/adjustment.py b/shenzhen_solitaire/cv/adjustment.py index a2fafbd..f41194d 100644 --- a/shenzhen_solitaire/cv/adjustment.py +++ b/shenzhen_solitaire/cv/adjustment.py @@ -32,53 +32,46 @@ def _adjust_squares( count_x: int, count_y: int, adjustment: Optional[Adjustment] = None) -> Adjustment: + if not adjustment: adjustment = Adjustment(0, 0, 0, 0, 0, 0) + + def _adjustment_step(keycode: int) -> None: + assert adjustment is not None + x_keys = {81: -1, 83: +1, 104: -10, 115: +10} + y_keys = {82: -1, 84: +1, 116: -10, 110: +10} + w_keys = {97: -1, 117: +1} + h_keys = {111: -1, 101: +1} + dx_keys = {59: -1, 112: +1} + dy_keys = {44: -1, 46: +1} + if keycode in x_keys: + adjustment.x += x_keys[keycode] + elif keycode in y_keys: + adjustment.y += y_keys[keycode] + elif keycode in w_keys: + adjustment.w += w_keys[keycode] + elif keycode in h_keys: + adjustment.h += h_keys[keycode] + elif keycode in dx_keys: + adjustment.dx += dx_keys[keycode] + elif keycode in dy_keys: + adjustment.dy += dy_keys[keycode] + while True: working_image = image.copy() - for index_x, index_y in itertools.product(range(count_x), range(count_y)): + for index_x, index_y in itertools.product( + range(count_x), range(count_y)): square = get_square(adjustment, index_x, index_y) cv2.rectangle(working_image, (square[0], square[1]), (square[2], square[3]), (0, 0, 0)) cv2.imshow('Window', working_image) - k = cv2.waitKey(0) - print(k) - if k == 27: + keycode = cv2.waitKey(0) + print(keycode) + if keycode == 27: break - elif k == 81: - adjustment.x -= 1 - elif k == 83: - adjustment.x += 1 - elif k == 82: - adjustment.y -= 1 - elif k == 84: - adjustment.y += 1 - elif k == 104: - adjustment.x -= 10 - elif k == 115: - adjustment.x += 10 - elif k == 116: - adjustment.y -= 10 - elif k == 110: - adjustment.y += 10 - elif k == 97: - adjustment.w -= 1 - elif k == 111: - adjustment.h -= 1 - elif k == 101: - adjustment.h += 1 - elif k == 117: - adjustment.w += 1 - elif k == 59: - adjustment.dx -= 1 - elif k == 44: - adjustment.dy -= 1 - elif k == 46: - adjustment.dy += 1 - elif k == 112: - adjustment.dx += 1 + _adjustment_step(keycode) cv2.destroyWindow('Window') return adjustment diff --git a/shenzhen_solitaire/cv/card_finder.py b/shenzhen_solitaire/cv/card_finder.py index 77d4ef8..b7149df 100644 --- a/shenzhen_solitaire/cv/card_finder.py +++ b/shenzhen_solitaire/cv/card_finder.py @@ -58,7 +58,7 @@ def simplify(image: np.ndarray) -> Tuple[np.ndarray, Dict[Cardcolor, int]]: best_color: Optional[Tuple[Cardcolor, int]] = None for color in Cardcolor: mse = sum((x - y) ** 2 for x, y in zip(color.value, pixel)) - if not best_color or best_color[1] > mse: + if not best_color or best_color[1] > mse: #pylint: disable=E1136 best_color = (color, mse) assert best_color result_image[pixel_x, pixel_y] = GREYSCALE_COLOR[best_color[0]] @@ -78,7 +78,7 @@ def _find_single_square(search_square: np.ndarray, template_square.shape[0]:margin_x, margin_y - template_square.shape[1]:margin_y] count = cv2.countNonZero(search_region - template_square) - if not best_result or count < best_result[0]: + if not best_result or count < best_result[0]: #pylint: disable=E1136 best_result = ( count, (margin_x - template_square.shape[0],