Python 식별 처리 사진 의 바코드

최근 에 계속 게임 을 하고 있 는데 갑자기 이미지 인식 을 실현 하려 면 게임 을 구 해 야 하고 입 출력 까지 평균 0.5s 가 필요 합 니 다.
전체적인 사고방식 은 그림 속 의 숫자 를 식별 하여 list 를 생 성 한 다음 에 해답 을 구 하 는 것 이다.
입 출력 데모
수 독 은 마이크로소프트 가 자체 적 으로 가지 고 있 는 Microsoft sudoku 소프트웨어 가 마음대로 캡 처 한 그림 을 사용 합 니 다.다음 그림 과 같 습 니 다.

프로그램 구 해 를 거 친 후에 얻 은 결 과 는 다음 그림 과 같다.

def getFollow(varset, terminalset, first_dic, production_list):
    follow_dic = {}
    done = {}
    for var in varset:
        follow_dic[var] = set()
        done[var] = 0
    follow_dic["A1"].add("#")
    # for var in terminalset:
    #     follow_dic[var]=set()
    #     done[var] = 0
    for var in follow_dic:
        getFollowForVar(var, varset, terminalset, first_dic, production_list, follow_dic, done)
    return follow_dic
  
  
def getFollowForVar(var, varset, terminalset, first_dic, production_list, follow_dic, done):
    if done[var] == 1:
        return
    for production in production_list:
        if var in production.right:
            ##index           bug,      var,index        
            if production.right.index(var) != len(production.right) - 1:
                follow_dic[var] = first_dic[production.right[production.right.index(var) + 1]] | follow_dic[var]
            #               null   
            if production.right[len(production.right) - 1] == var:
                if var != production.left[0]:
                    # print(var, "  ", production.left[0])
                    getFollowForVar(production.left[0], varset, terminalset, first_dic, production_list, follow_dic,
                                    done)
                    follow_dic[var] = follow_dic[var] | follow_dic[production.left[0]]
  
    done[var] = 1
절차
프로그램의 전체 절 차 는 다음 그림 과 같다.

그림 을 읽 은 후에 윤곽 정 보 를 구 해 숫자 가 있 는 위치 와 숫자 가 포함 되 지 않 은 공백 위 치 를 찾 고 디지털 정 보 를 추출 하여 KNN 을 통 해 식별 하여 숫자 를 식별 한다.list 에 숫자 정보 가 없 는 0 을 설정 합 니 다.해 제 를 구하 지 않 은 독 list 를 만 든 후 해 제 를 구하 고 정 보 를 원 그림 에 표시 합 니 다.

def initProduction():
    production_list = []
    production = Production(["A1"], ["A"], 0)
    production_list.append(production)
    production = Production(["A"], ["E", "I", "(", ")", "{", "D", "}"], 1)
    production_list.append(production)
    production = Production(["E"], ["int"], 2)
    production_list.append(production)
    production = Production(["E"], ["float"], 3)
    production_list.append(production)
    production = Production(["D"], ["D", ";", "B"], 4)
    production_list.append(production)
    production = Production(["B"], ["F"], 5)
    production_list.append(production)
    production = Production(["B"], ["G"], 6)
    production_list.append(production)
    production = Production(["B"], ["M"], 7)
    production_list.append(production)
    production = Production(["F"], ["E", "I"], 8)
    production_list.append(production)
    production = Production(["G"], ["I", "=", "P"], 9)
    production_list.append(production)
    production = Production(["P"], ["K"], 10)
    production_list.append(production)
    production = Production(["P"], ["K", "+", "P"], 11)
    production_list.append(production)
    production = Production(["P"], ["K", "-", "P"], 12)
    production_list.append(production)
    production = Production(["I"], ["id"], 13)
    production_list.append(production)
    production = Production(["K"], ["I"], 14)
    production_list.append(production)
    production = Production(["K"], ["number"], 15)
    production_list.append(production)
    production = Production(["K"], ["floating"], 16)
    production_list.append(production)
    production = Production(["M"], ["while", "(", "T", ")", "{", "D", ";", "}"], 18)
    production_list.append(production)
    production = Production(["N"], ["if", "(", "T", ")", "{", "D",";", "}", "else", "{", "D", ";","}"], 19)
    production_list.append(production)
    production = Production(["T"], ["K", "L", "K"], 20)
    production_list.append(production)
    production = Production(["L"], [">"], 21)
    production_list.append(production)
    production = Production(["L"], ["<"], 22)
    production_list.append(production)
    production = Production(["L"], [">="], 23)
    production_list.append(production)
    production = Production(["L"], ["<="], 24)
    production_list.append(production)
    production = Production(["L"], ["=="], 25)
    production_list.append(production)
    production = Production(["D"], ["B"], 26)
    production_list.append(production)
    production = Production(["B"], ["N"], 27)
    production_list.append(production)
    return production_list
 
 
source = [[5, "int", "    "], [1, "lexicalanalysis", "    "], [13, "(", "    "], [14, ")", "    "], [20, "{", "     "],
          [4, "float", "    "], [1, "a", "    "], [15, ";", "   "], [5, "int", "    "], [1, "b", "    "],
          [15, ";", "   "], [1, "a", "    "], [12, "=", "    "], [3, "1.1", "    "], [15, ";", "   "], [1, "b", "    "],
          [12, "=", "    "], [2, "2", "   "], [15, ";", "   "], [8, "while", "     "], [13, "(", "    "],
          [1, "b", "    "], [17, "<", "    "], [2, "100", "   "], [14, ")", "    "], [20, "{", "     "],
          [1, "b", "    "], [12, "=", "    "], [1, "b", "    "], [9, "+", "    "], [2, "1", "   "], [15, ";", "   "],
          [1, "a", "    "], [12, "=", "    "], [1, "a", "    "], [9, "+", "   "], [2, "3", "   "], [15, ";", "   "],
          [21, "}", "     "], [15, ";", "   "], [6, "if", "    "], [13, "(", "    "], [1, "a", "    "],
          [16, ">", "    "], [2, "5", "   "], [14, ")", "    "], [20, "{", "     "], [1, "b", "    "],
          [12, "=", "    "], [1, "b", "    "], [10, "-", "   "], [2, "1", "   "], [15, ";", "   "], [21, "}", "     "],
          [7, "else", "    "], [20, "{", "     "], [1, "b", "    "], [12, "=", "    "], [1, "b", "    "],
          [9, "+", "   "], [2, "1", "   "], [15, ";", "   "], [21, "}", "     "], [21, "}", "     "]]
이상 은 Python 식별 처리 사진 의 바코드 에 대한 상세 한 내용 입 니 다.python 식별 바코드 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기