From 30cd0c20aca222eb5182add57293fa2ea63003ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20W=C3=B6lfer?= Date: Sun, 9 Feb 2020 01:20:29 +0100 Subject: [PATCH] Completed configuration --- .gitignore | 1 + .../card_detection/board_parser.py | 40 +++++++++--- .../card_detection/configuration.py | 11 ++-- test_config.zip | Bin 49012 -> 151378 bytes tools/generate_bunker.py | 43 +++++++++++++ tools/generate_goal.py | 33 ++++++++++ tools/generate_hua.py | 34 ++++++++++ tools/generate_special_buttons.py | 59 ++++++++++++++++++ 8 files changed, 205 insertions(+), 16 deletions(-) create mode 100644 .gitignore create mode 100644 tools/generate_bunker.py create mode 100644 tools/generate_goal.py create mode 100644 tools/generate_hua.py create mode 100644 tools/generate_special_buttons.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9cccefe --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +test_config/ \ No newline at end of file diff --git a/shenzhen_solitaire/card_detection/board_parser.py b/shenzhen_solitaire/card_detection/board_parser.py index e2774d5..729f55c 100644 --- a/shenzhen_solitaire/card_detection/board_parser.py +++ b/shenzhen_solitaire/card_detection/board_parser.py @@ -1,12 +1,14 @@ """Contains parse_board function""" -import numpy as np -from .configuration import Configuration -from ..board import Board, NumberCard, SpecialCard, Card -from . import card_finder -import cv2 -from typing import Iterable, Any, List, Tuple, Union import itertools +from typing import Any, Iterable, List, Optional, Tuple, Union, Dict + +import cv2 +import numpy as np + +from ..board import Board, Card, NumberCard, SpecialCard +from . import card_finder +from .configuration import Configuration def grouper( @@ -17,7 +19,7 @@ def grouper( return itertools.zip_longest(*args, fillvalue=fillvalue) -def get_square_iterator( +def get_field_square_iterator( image: np.ndarray, conf: Configuration, row_count: int, column_count: int ) -> Iterable[Tuple[np.ndarray, np.ndarray]]: """Return iterator for both the square, as well as the matching card border""" @@ -46,7 +48,7 @@ def match_template(template: np.ndarray, search_image: np.ndarray) -> float: return float(max_val) -def parse_square( +def parse_field_square( square: np.ndarray, border: np.ndarray, conf: Configuration ) -> Tuple[Union[NumberCard, SpecialCard], bool]: square_fits = [ @@ -73,7 +75,7 @@ def parse_square( def parse_field(image: np.ndarray, conf: Configuration) -> List[List[Card]]: """Parse a screenshot of the game, using a given configuration""" - square_iterator = get_square_iterator( + square_iterator = get_field_square_iterator( image, conf, row_count=Board.MAX_ROW_SIZE, column_count=Board.MAX_COLUMN_SIZE ) result = [] @@ -82,7 +84,7 @@ def parse_field(image: np.ndarray, conf: Configuration) -> List[List[Card]]: for index, (square, border_square) in enumerate( zip(square_group, border_group) ): - value, row_finished = parse_square(square, border_square, conf) + value, row_finished = parse_field_square(square, border_square, conf) group_field.append(value) if row_finished: break @@ -92,7 +94,25 @@ def parse_field(image: np.ndarray, conf: Configuration) -> List[List[Card]]: return result +def parse_hua(image: np.ndarray, conf: Configuration) -> bool: + """Return true if hua is in the hua spot, false if hua spot is empty""" + raise NotImplementedError() + + +def parse_bunker( + image: np.ndarray, conf: Configuration +) -> List[Union[Tuple[SpecialCard, int], Optional[Card]]]: + raise NotImplementedError() + + +def parse_goal(image: np.ndarray, conf: Configuration) -> Dict[NumberCard.Suit, int]: + raise NotImplementedError() + + def parse_board(image: np.ndarray, conf: Configuration) -> Board: result = Board() result.field = parse_field(image, conf) + # result.flower_gone = parse_hua(image, conf) + # result.bunker = parse_bunker(image, conf) + # result.goal = parse_goal(image, conf) return result diff --git a/shenzhen_solitaire/card_detection/configuration.py b/shenzhen_solitaire/card_detection/configuration.py index 585b63b..b0c9400 100644 --- a/shenzhen_solitaire/card_detection/configuration.py +++ b/shenzhen_solitaire/card_detection/configuration.py @@ -117,13 +117,12 @@ def save(conf: Configuration, filename: str) -> None: def _parse_file_name(card_filename: str) -> board.Card: - assert card_filename.startswith(TEMPLATES_DIRECTORY + "/") - pure_name = card_filename[len(TEMPLATES_DIRECTORY + "/") :] - if pure_name[0] == "s": - return board.SpecialCard(int(pure_name[1])) - if pure_name[0] == "n": + if card_filename[0] == "s": + return board.SpecialCard(int(card_filename[1])) + if card_filename[0] == "n": return board.NumberCard( - suit=board.NumberCard.Suit(int(pure_name[1])), number=int(pure_name[2]), + suit=board.NumberCard.Suit(int(card_filename[1])), + number=int(card_filename[2]), ) raise AssertionError("Template files need to start with either 's' or 'n'") diff --git a/test_config.zip b/test_config.zip index f3b6a3e702c493937c08972ee35a6f3fe51c6c2c..b01da28a4ee7b03ceecc2dde68a7a6267e6b8ab2 100644 GIT binary patch delta 102495 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

JyEg^=7koMGULgjZ4R_ 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 delta 792 zcmZuvTS!z<6y4_>d?e)qbsXP{qDbS|L&MDL=;%D0L3~hAqZX+lD5;@R6DbbSM@bPO zE~79FCBa9pkNF6qppOugw4b7gf*>mkjea7K_I2JRD?K>`-9$W~2{H0;Qd3H}RSkv^^R)-*pu@Y ztw@$(cd<-SHG)uAEUVNI2X~5Py^0N{VU15;7~z;EJ<1kAc&t}uqY3v0MKT;#nT3WD z=8rQHyd@0ENTT6atmA8mbgJ<*LV-m#syCU0x3@$RMr<-0uPriOrREUQ$G3*KCq;OK zk+lWB3Ez=if@hLDx=LlKn%PB|n_}=wJ@e-WI2L9^DDuj~PP zeV8!2C=!uY!NWH^I(Z`c^`!gwCV@w7ZziPJn6kH(&}ZX`AKKZn9;9>;(pH2qKzqi{ z6Mys&)>gN?A6Wm#yVFZ>t+V$?2Xkcf1>Cke_>YeI2xGtbYEi#hx=4s}vg(Y>gwuME zbCs~xB1VG8wK)28MuerIPQXZxX&&vZ`~p3FqUaF|fl+E>>llAefW5Wpk}x z^itClA=u6EYcqrvw{)vz4j#H?q2+&Xktl)!OBB4v0pHJAq7yA`z1=;hPImN|+qyeD Z4jl}l&DUzGmd0>1ndwC&(eRwU_rEJW+tL64 diff --git a/tools/generate_bunker.py b/tools/generate_bunker.py new file mode 100644 index 0000000..9a76314 --- /dev/null +++ b/tools/generate_bunker.py @@ -0,0 +1,43 @@ +import copy +import dataclasses +import json + +import cv2 +import numpy as np + +import shenzhen_solitaire.card_detection.adjustment as adjustment +import shenzhen_solitaire.card_detection.card_finder as card_finder +from shenzhen_solitaire.card_detection.configuration import Configuration + + +def main() -> None: + """Generate a configuration""" + image = cv2.imread("pictures/specific/BunkerCards.jpg") + + bunker_adjustment = adjustment.adjust_squares( + image, + count_x=3, + count_y=1, + adjustment=adjustment.Adjustment( + **{"x": 730, "y": 310, "w": 19, "h": 21, "dx": 152, "dy": 0} + ), + ) + print(json.dumps(dataclasses.asdict(bunker_adjustment))) + + back_image = cv2.imread("pictures/specific/BaiShiny.jpg") + back_squares = card_finder.get_field_squares( + back_image, count_x=1, count_y=3, adjustment=copy.deepcopy(bunker_adjustment) + ) + + green_image = cv2.imread("pictures/20190809172213_1.jpg") + green_squares = card_finder.get_field_squares( + green_image, count_x=1, count_y=3, adjustment=copy.deepcopy(bunker_adjustment) + ) + + cv2.imwrite("/tmp/bunker_green_1.png", green_squares[0]) + cv2.imwrite("/tmp/bunker_green_2.png", green_squares[1]) + cv2.imwrite("/tmp/bunker_green_3.png", green_squares[2]) + + +if __name__ == "__main__": + main() diff --git a/tools/generate_goal.py b/tools/generate_goal.py new file mode 100644 index 0000000..e0e90af --- /dev/null +++ b/tools/generate_goal.py @@ -0,0 +1,33 @@ +import copy +import dataclasses +import json + +import cv2 +import numpy as np + +import shenzhen_solitaire.card_detection.adjustment as adjustment +import shenzhen_solitaire.card_detection.card_finder as card_finder +from shenzhen_solitaire.card_detection.configuration import Configuration + + +def main() -> None: + """Generate a configuration""" + image = cv2.imread("pictures/specific/BaiShiny.jpg") + + goal_adjustment = adjustment.adjust_squares( + image, count_x=3, count_y=1, adjustment=adjustment.Adjustment(**{"x": 1490, "y": 310, "w": 19, "h": 21, "dx": 152, "dy": 0}) + ) + print(json.dumps(dataclasses.asdict(goal_adjustment))) + + green_image = cv2.imread("pictures/20190809172213_1.jpg") + green_squares = card_finder.get_field_squares( + green_image, count_x=1, count_y=3, adjustment=copy.deepcopy(goal_adjustment) + ) + + cv2.imwrite("/tmp/goal_green_1.png", green_squares[0]) + cv2.imwrite("/tmp/goal_green_2.png", green_squares[1]) + cv2.imwrite("/tmp/goal_green_3.png", green_squares[2]) + + +if __name__ == "__main__": + main() diff --git a/tools/generate_hua.py b/tools/generate_hua.py new file mode 100644 index 0000000..861bf9e --- /dev/null +++ b/tools/generate_hua.py @@ -0,0 +1,34 @@ +import copy +import dataclasses +import json + +import cv2 +import numpy as np + +import shenzhen_solitaire.card_detection.adjustment as adjustment +import shenzhen_solitaire.card_detection.card_finder as card_finder +from shenzhen_solitaire.card_detection.configuration import Configuration + + +def main() -> None: + """Generate a configuration""" + image = cv2.imread("pictures/specific/BunkerCards.jpg") + + hua_adjustment = adjustment.adjust_squares( + image, + count_x=1, + count_y=1, + adjustment=adjustment.Adjustment( + **{"x": 1299, "y": 314, "w": 19, "h": 21, "dx": 0, "dy": 0} + ), + ) + print(json.dumps(dataclasses.asdict(hua_adjustment))) + green_image = cv2.imread("pictures/specific/ZhongShiny.jpg") + hua_green = card_finder.get_field_squares( + green_image, hua_adjustment, count_x=1, count_y=1 + ) + cv2.imwrite("/tmp/hua_green.png", hua_green[0]) + + +if __name__ == "__main__": + main() diff --git a/tools/generate_special_buttons.py b/tools/generate_special_buttons.py new file mode 100644 index 0000000..14f8b68 --- /dev/null +++ b/tools/generate_special_buttons.py @@ -0,0 +1,59 @@ +import copy +import dataclasses +import json +import tempfile +from pathlib import Path + +import cv2 +import numpy as np + +import shenzhen_solitaire.card_detection.adjustment as adjustment +import shenzhen_solitaire.card_detection.card_finder as card_finder +from shenzhen_solitaire.card_detection.configuration import Configuration + + +def main() -> None: + """Generate a configuration""" + normal_image = cv2.imread("pictures/specific/BunkerCards.jpg") + + picture_dir = Path(tempfile.mkdtemp(prefix="shenzhen-special-buttons-")) + print(picture_dir) + button_adjustment = adjustment.adjust_squares(normal_image, count_x=1, count_y=3) + normal_squares = card_finder.get_field_squares( + normal_image, button_adjustment, 3, 1 + ) + cv2.imwrite(str(picture_dir / "nz.png"), normal_squares[0]) + cv2.imwrite(str(picture_dir / "nf.png"), normal_squares[1]) + cv2.imwrite(str(picture_dir / "nb.png"), normal_squares[2]) + + fa_shiny_image = cv2.imread("pictures/specific/FaShiny.jpg") + fa_shiny_squares = card_finder.get_field_squares( + fa_shiny_image, button_adjustment, 3, 1 + ) + cv2.imwrite(str(picture_dir / "sf.png"), fa_shiny_squares[1]) + + zhong_shiny_image = cv2.imread("pictures/specific/ZhongShiny.jpg") + zhong_shiny_squares = card_finder.get_field_squares( + zhong_shiny_image, button_adjustment, 3, 1 + ) + cv2.imwrite(str(picture_dir / "sz.png"), zhong_shiny_squares[0]) + + bai_shiny_image = cv2.imread("pictures/specific/BaiShiny.jpg") + bai_shiny_squares = card_finder.get_field_squares( + bai_shiny_image, button_adjustment, 3, 1 + ) + cv2.imwrite(str(picture_dir / "sb.png"), bai_shiny_squares[2]) + cv2.imwrite(str(picture_dir / "gz.png"), bai_shiny_squares[0]) + cv2.imwrite(str(picture_dir / "gf.png"), bai_shiny_squares[1]) + + bai_black_image = cv2.imread("pictures/specific/BaiBlack.jpg") + bai_black_squares = card_finder.get_field_squares( + bai_black_image, button_adjustment, 3, 1 + ) + cv2.imwrite(str(picture_dir / "gb.png"), bai_black_squares[2]) + print(picture_dir) + print(json.dumps(dataclasses.asdict(button_adjustment))) + + +if __name__ == "__main__": + main()