더북(TheBook)

13행 train_knn() 함수를 실행하여 필기체 숫자를 학습한 결과를 knn에 저장합니다.

20행 400×400 크기의 영상 img를 생성합니다. img 영상에 마우스로 글씨를 쓰고 숫자를 인식할 것입니다.

28~29행 키보드에서 ESC 키를 누르면 프로그램을 종료합니다.

30행 키보드에서 Space 키를 누르면 필기체 숫자 인식을 수행합니다.

33행 숫자가 쓰여진 img 영상을 20×20 크기로 변환하여 img_resize에 저장합니다.

34행 img_resize 영상 자료형을 float로 변환하여 img_float에 저장합니다.

35행 20×20 img_float 영상을 400×1 크기의 영상으로 변환하여 img_flatten에 저장합니다.

37~38행 kNN 알고리즘으로 분류한 결과를 콘솔 창에 출력합니다.

40~41행 img 영상을 검은색으로 초기화한 후 화면에 나타냅니다.

 

코드 15-2부터 코드 15-4까지 설명한 knndigits 프로그램 실행 결과를 그림 15-8에 나타냈습니다. knndigits 프로그램을 실행하면 검은색으로 초기화된 img 영상이 화면에 나타나고, 이 위에서 마우스를 이용하여 숫자를 그릴 수 있습니다. 그리고 키보드에서 Space 키를 누르면 인식된 숫자가 콘솔 창에 나타납니다. 사용자가 필기체 숫자를 img 창 중앙에 적당한 크기로 입력하면 대체로 정확하게 숫자를 인식하는 것을 확인할 수 있습니다. 다만 글씨 크기를 너무 크거나 작게 입력하면, 또는 중앙이 아닌 위치에 글씨를 입력할 경우에는 인식 결과가 잘못될 수 있습니다.

▲ 그림 15-8 KNearest 클래스를 이용한 필기체 숫자 인식 실행 화면

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.