Completed configuration

This commit is contained in:
Lukas Wölfer
2020-02-09 01:20:29 +01:00
parent d0e6fa0a46
commit 30cd0c20ac
8 changed files with 205 additions and 16 deletions

43
tools/generate_bunker.py Normal file
View File

@@ -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()

33
tools/generate_goal.py Normal file
View File

@@ -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()

34
tools/generate_hua.py Normal file
View File

@@ -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()

View File

@@ -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()