Made image detection work
This commit is contained in:
@@ -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),
|
||||
]
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user