55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
import argparse
|
|
|
|
import cv2
|
|
import numpy as np
|
|
|
|
from shenzhen_solitaire.card_detection import configuration, adjustment, card_finder
|
|
from shenzhen_solitaire.card_detection.configuration import Configuration
|
|
|
|
|
|
def main() -> None:
|
|
"""Generate a configuration"""
|
|
parser = argparse.ArgumentParser(
|
|
description="Generate pictures for symbols. "
|
|
"Requires screenshot of field with no moved cards, "
|
|
"so 8 columns of 5 cards each"
|
|
)
|
|
parser.add_argument(
|
|
"screenshot_path",
|
|
metavar="screenshot_path",
|
|
type=str,
|
|
help="Path to the screenshot",
|
|
)
|
|
parser.add_argument(
|
|
"--conf",
|
|
dest="config_path",
|
|
type=str,
|
|
default="config.zip",
|
|
help="Path to existing config to be merged, or new config",
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
print(args.screenshot_path)
|
|
image = cv2.imread(args.screenshot_path)
|
|
conf = configuration.load(args.config)
|
|
squares = card_finder.get_field_squares(image, conf.field_adjustment, 5, 8)
|
|
catalogue = card_finder.catalogue_cards(squares)
|
|
conf.card_border.extend(
|
|
card_finder.get_field_squares(image, conf.border_adjustment, 1, 1)
|
|
)
|
|
conf.green_card.extend(
|
|
card_finder.get_field_squares(image, conf.bunker_adjustment, 1, 3)
|
|
)
|
|
conf.green_card.extend(
|
|
card_finder.get_field_squares(image, conf.goal_adjustment, 1, 3)
|
|
)
|
|
conf.green_card.extend(
|
|
card_finder.get_field_squares(image, conf.hua_adjustment, 1, 1)
|
|
)
|
|
conf.catalogue.extend(catalogue)
|
|
configuration.save(conf, args.config_path)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|