예제 #1
0
파일: config.py 프로젝트: wildarch/GameBot
def testRecognizer(bus, boardsize):
    print("Testing my eyesight")

    recognizer = Recognizer(boardsize)

    board = recognizer.getBoardState()

    print board
    print "Terminating"

    return
예제 #2
0
파일: config.py 프로젝트: wildarch/GameBot
def testRecognizer(bus, boardsize):
    print("Testing my eyesight")

    recognizer = Recognizer(boardsize)

    board = recognizer.getBoardState()

    print board
    print "Terminating"

    return
예제 #3
0
def configurerecognizerwithimage(boardsize, filename):
    recognizer = Recognizer(boardsize)
    recognizer.setconfig(config['recognizer'])

    display = Display()

    display.initdisplay()
    img = cv2.imread('BoardRecognizer/tests/' + filename + '.png')
    recognizer.initrefdata('BoardRecognizer/tests/' + filename + '.yml')

    pieces = recognizer.getboardstate(img)
    print ''.join(pieces)
    checkPieces = []
    for row in recognizer.refBoard:
        for tile in row:
            checkPieces.append(tile)
    for i in range(32):
        if pieces[i] == checkPieces[i]:
            checkPieces[i] = ' '

    print 'Recognized:' + ' '.join(pieces)
    print 'Reference: ' + ' '.join(checkPieces)

    while True:
        display.showframe(img)
        annotateboard(recognizer.board, recognizer.pieceRecognizer.means,
                      pieces)
        display.showboard(recognizer.board)
        key = cv2.waitKey(0)

        if key > 0:
            break

    display.enddisplay()
예제 #4
0
파일: config.py 프로젝트: nouwaarom/GameBot
def configurerecognizerwithimage(boardsize, filename):
    recognizer = Recognizer(boardsize)
    recognizer.setconfig(config['recognizer'])

    display = Display()

    display.initdisplay()
    img = cv2.imread('BoardRecognizer/tests/' + filename + '.png')
    recognizer.initrefdata('BoardRecognizer/tests/' + filename + '.yml')

    pieces = recognizer.getboardstate(img)
    print ''.join(pieces)
    checkPieces = []
    for row in recognizer.refBoard:
        for tile in row:
            checkPieces.append(tile)
    for i in range(32):
        if pieces[i] == checkPieces[i]:
            checkPieces[i] = ' '

    print 'Recognized:' + ' '.join(pieces)
    print 'Reference: ' + ' '.join(checkPieces)

    while True:
        display.showframe(img)
        annotateboard(recognizer.board, recognizer.pieceRecognizer.means, pieces)
        display.showboard(recognizer.board)
        key = cv2.waitKey(0)

        if key > 0:
            break

    display.enddisplay()
예제 #5
0
def saveboard(boardsize, img_path, dest_path):
    recognizer = Recognizer(boardsize)
    recognizer.setconfig(config['recognizer'])

    img = cv2.imread('BoardRecognizer/tests/' + img_path + '.png')
    recognizer.initrefdata('BoardRecognizer/tests/' + img_path + '.yml')
    recognizer.getboardstate(img)
    splitter = BoardSplitter(boardsize)
    refBoard = recognizer.refBoard
    tiles = splitter.get_tiles(recognizer.board)

    for i in range(32):
        x = getcol(i)
        y = getrow(i)
        cv2.imwrite(
            dest_path + str(img_path) + ' ' + str(x) + '-' + str(y) + '-' +
            str(refBoard[i // 4][i % 4]) + ".jpg", tiles[x][y])
예제 #6
0
파일: config.py 프로젝트: nouwaarom/GameBot
def saveboard(boardsize, img_path, dest_path):
    recognizer = Recognizer(boardsize)
    recognizer.setconfig(config['recognizer'])

    img = cv2.imread('BoardRecognizer/tests/' + img_path + '.png')
    recognizer.initrefdata('BoardRecognizer/tests/' + img_path + '.yml')
    recognizer.getboardstate(img)
    splitter = BoardSplitter(boardsize)
    refBoard = recognizer.refBoard
    tiles = splitter.get_tiles(recognizer.board)

    for i in range(32):
        x = getcol(i)
        y = getrow(i)
        cv2.imwrite(dest_path + str(img_path) + ' ' + str(x) + '-' + str(y) + '-' + str(refBoard[i//4][i%4]) + ".jpg", tiles[x][y])
예제 #7
0
def getthresholdsfromimg(boardsize, filename):
    recognizer = Recognizer(boardsize)
    recognizer.setconfig(config['recognizer'])

    recognizer.initdisplay()
    img = cv2.imread('BoardRecognizer/tests/' + filename + '.png')
    recognizer.initrefdata('BoardRecognizer/tests/' + filename + '.yml')

    checkPieces = []
    for row in recognizer.refBoard:
        for tile in row:
            checkPieces.append(tile)
    _, board = recognizer.boardRecognizer.processframe(img)
    means = recognizer.pieceRecognizer.getmeansfromboard(board)
    # Browns
    means = list(
        map(lambda (_, x): x,
            filter(lambda (x, _): not iswhite(x, boardsize),
                   enumerate(means))))

    blackthres = 0
    whitethres = 255
    minempty = 255
    maxempty = 0
    for i in range(32):
        print checkPieces[i] + ": " + str(means[i])
        piece = checkPieces[i]
        if piece == 'w':
            whitethres = means[i] if means[i] < whitethres else whitethres
        elif piece == 'b':
            blackthres = means[i] if means[i] > blackthres else blackthres
        else:
            minempty = means[i] if means[i] < minempty else minempty
            maxempty = means[i] if means[i] > maxempty else maxempty
    print 'blackThres: ' + str(blackthres)
    print 'whiteThres: ' + str(whitethres)
    print 'Empty: ' + str(minempty) + ' - ' + str(maxempty)
예제 #8
0
파일: config.py 프로젝트: nouwaarom/GameBot
def getthresholdsfromimg(boardsize, filename):
    recognizer = Recognizer(boardsize)
    recognizer.setconfig(config['recognizer'])

    recognizer.initdisplay()
    img = cv2.imread('BoardRecognizer/tests/' + filename + '.png')
    recognizer.initrefdata('BoardRecognizer/tests/' + filename + '.yml')

    checkPieces = []
    for row in recognizer.refBoard:
        for tile in row:
            checkPieces.append(tile)
    _, board = recognizer.boardRecognizer.processframe(img)
    means = recognizer.pieceRecognizer.getmeansfromboard(board)
    # Browns
    means = list(
        map(lambda (_, x): x,
            filter(lambda (x, _): not iswhite(x, boardsize),
                   enumerate(means)
                   )
        )
    )

    blackthres = 0
    whitethres = 255
    minempty = 255
    maxempty = 0
    for i in range(32):
        print checkPieces[i] + ": " + str(means[i])
        piece = checkPieces[i]
        if piece == 'w':
            whitethres = means[i] if means[i] < whitethres else whitethres
        elif piece == 'b':
            blackthres = means[i] if means[i] > blackthres else blackthres
        else:
            minempty = means[i] if means[i] < minempty else minempty
            maxempty = means[i] if means[i] > maxempty else maxempty
    print 'blackThres: '+str(blackthres)
    print 'whiteThres: '+str(whitethres)
    print 'Empty: '+str(minempty)+' - '+str(maxempty)
예제 #9
0
def testrecognizer(boardsize, filename):
    print("Testing my eyesight")

    recognizer = Recognizer(boardsize)
    recognizer.setconfig(config['recognizer'])

    display = Display()

    # Load the test movie
    recognizer.initcapture('BoardRecognizer/tests/' + filename + '.avi')
    display.initdisplay()

    while True:
        frame = recognizer.getframe()
        print recognizer.getboardstate(frame)
        display.showframe(frame)

    recognizer.endcapture()
    display.enddisplay()

    config['recognizer'] = recognizer.getconfig()
예제 #10
0
파일: config.py 프로젝트: nouwaarom/GameBot
def testrecognizer(boardsize, filename):
    print("Testing my eyesight")

    recognizer = Recognizer(boardsize)
    recognizer.setconfig(config['recognizer'])

    display = Display()

    # Load the test movie
    recognizer.initcapture('BoardRecognizer/tests/' + filename + '.avi')
    display.initdisplay()

    while True:
        frame = recognizer.getframe()
        print recognizer.getboardstate(frame)
        display.showframe(frame)


    recognizer.endcapture()
    display.enddisplay()

    config['recognizer'] = recognizer.getconfig()