나는 pygame.surfarray.array2d()
에 대한 호출에 대해 명확히 알고 있지 않습니다. 그러나 이진 색상 레이아웃에서 더 작은 이진 색상 행렬로 바뀌므로 결과 사각형을 적절하게 채색하기 위해 새 비율을 사용하여 원본 이미지를 세분 할 수 있습니다. 예를 들어 보겠습니다.
초기 이미지가 14x10이고 7x5 매트릭스를 갖고 싶다고합시다. 당신이해야 할 것은 내가 좋은 숫자를 집어 때문에 5로 분할 X-현명한 7,와 y-현명하다
[[0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,0,0,0,0,0,0],
[0,0,0,0,0,0,1,1,1,0,0,0,0,0],
[0,0,0,0,0,1,1,0,1,1,0,0,0,0],
[0,0,0,0,1,1,1,1,1,1,1,0,0,0],
[0,0,0,1,1,1,1,1,1,1,1,1,0,0],
[0,0,1,1,0,0,0,0,0,0,0,1,1,0],
[0,1,1,0,0,0,0,0,0,0,0,0,1,1]]
, 큰 이미지의 조각이 있습니다 : 귀하의 초기 이미지는 다음과 같습니다 찾고있는 것은 2x2입니다. 왼쪽 상단 2x2 블록을 예로 들어 보겠습니다.
[[0,0],
[0,0]] -> [0]
이 미니 매트릭스는 7x5 이미지의 단일 픽셀로 매핑됩니다.
[[1,0],
[1,1]] -> [1]
이 당신의 7x5 이미지의 값을 1로 매핑됩니다 : 물론,이 경우에는 오른쪽 아래에 0 살펴 보자 될 것입니다. 보시다시피,이 예제의 까다로운 경우는 1과 0이 같을 때입니다. 다행히 초기 이미지가 항상 100x100 이상이므로 큰 문제는 아닙니다.
내 예에이 방법을 적용, 수축의 7x5 이미지는 다음과 같습니다
[[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,1,1,0,0],
[0,0,1,1,1,1,0],
[0,1,0,0,0,0,1]]
Psuedocode 단계 :
5로 미니 행렬의 크기 (분할 찾기 및 7).이 이미지는 크기가 7x5보다 큰 이미지에서 작동합니다.
각 미니 매트릭스에 대해 흑백 공간 (0과 1)을 센다.
마지막 7x5 행렬의 공간이 검정색인지 흰색인지 결정하십시오. 나의 예에서는 최종 공간이 검은 색이어야한다고 (흰 사각형의 수> 검은 사각형의 수)라고합니다. 펜 크기가 7x5 디비전 크기보다 상대적으로 얇기 때문에이 방법을 사용하면 문제가 발생할 수 있습니다. 이것이 문제라면 if (흰색 사각형의 수 * 2> = 검은 사각형의 수)와 같은 것을 시도해보십시오. 이것은 효과적으로 흰 사각형을 더 가중시킵니다.
이 psuedocode에 대해 자세히 설명 드리겠습니다. 바로 알려주세요.
마지막으로 문제가 계속되는 경우 7x5보다 큰 크기를 사용해보십시오. OCR 알고리즘을 사용하면 정밀도가 높아집니다. 행운을 빕니다.
도움을 주셔서 대단히 감사합니다. 구현을 시작하고 무엇이 발생하면 알려 드리겠습니다. 다시 한 번 감사드립니다. –