Made image detection work

This commit is contained in:
Lukas Wölfer
2020-02-05 01:51:30 +01:00
parent 7e18f1db1c
commit c1026c0640
7 changed files with 208 additions and 144 deletions

View File

@@ -1,6 +1,8 @@
"""Contains an example board to run tests on"""
from shenzhen_solitaire.board import NumberCard, SpecialCard, Board
Suit = NumberCard.Suit
TEST_BOARD = Board()
TEST_BOARD.field[0] = [
SpecialCard.Fa,
@@ -65,3 +67,62 @@ TEST_BOARD.field[7] = [
NumberCard(NumberCard.Suit.Black, 1),
NumberCard(NumberCard.Suit.Green, 8),
]
B20190809172206_1 = Board()
B20190809172206_1.field[0] = [
NumberCard(Suit.Green, 6),
NumberCard(Suit.Green, 5),
NumberCard(Suit.Red, 4),
NumberCard(Suit.Green, 4),
SpecialCard.Fa,
]
B20190809172206_1.field[1] = [
NumberCard(Suit.Black, 8),
NumberCard(Suit.Black, 6),
SpecialCard.Zhong,
NumberCard(Suit.Black, 9),
NumberCard(Suit.Green, 7),
]
B20190809172206_1.field[2] = [
SpecialCard.Zhong,
NumberCard(Suit.Black, 4),
NumberCard(Suit.Green, 2),
SpecialCard.Bai,
SpecialCard.Zhong,
]
B20190809172206_1.field[3] = [
NumberCard(Suit.Green, 1),
NumberCard(Suit.Green, 3),
NumberCard(Suit.Black, 5),
SpecialCard.Fa,
SpecialCard.Fa,
]
B20190809172206_1.field[4] = [
NumberCard(Suit.Red, 8),
SpecialCard.Zhong,
NumberCard(Suit.Red, 7),
]
B20190809172206_1.field[5] = [
SpecialCard.Fa,
SpecialCard.Bai,
NumberCard(Suit.Red, 2),
SpecialCard.Hua,
SpecialCard.Bai,
]
B20190809172206_1.field[6] = [
NumberCard(Suit.Black, 2),
NumberCard(Suit.Green, 8),
NumberCard(Suit.Black, 7),
SpecialCard.Bai,
NumberCard(Suit.Red, 9),
]
B20190809172206_1.field[7] = [
NumberCard(Suit.Red, 3),
NumberCard(Suit.Black, 3),
NumberCard(Suit.Green, 9),
NumberCard(Suit.Red, 5),
NumberCard(Suit.Red, 6),
]

View File

@@ -8,17 +8,18 @@ import numpy as np
from shenzhen_solitaire import board
from shenzhen_solitaire.card_detection import adjustment, board_parser
from shenzhen_solitaire.card_detection.configuration import Configuration
from . import boards
class CardDetectionTest(unittest.TestCase):
def test_parse(self) -> None:
"""Parse a configuration"""
with open("pictures/20190809172213_1.jpg", "rb") as png_file:
img_str = png_file.read()
nparr = np.frombuffer(img_str, np.uint8)
image = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
# image = cv2.resize(image, (1000, 629))
"""Parse a configuration and a board"""
image = cv2.imread("pictures/20190809172206_1.jpg")
loaded_config = Configuration.load("test_config.zip")
# loaded_config.field_adjustment = adjustment.adjust_field(image)
print(board_parser.parse_board(image, loaded_config))
my_board = board_parser.parse_board(image, loaded_config)
for rows in zip(boards.B20190809172206_1.field, my_board.field):
for good_cell, test_cell in zip(*rows):
self.assertEqual(good_cell, test_cell)