이미지에서 데이터를 읽는 간단한 스크립트를 작성하기 시작했습니다.Tesseract가 특정 숫자를 읽지 않습니다.
require 'rtesseract'
require 'mini_magick'
RTesseract.configure do |config|
config.processor = "mini_magick"
end
image = RTesseract.new("myImage.jpg")
puts image.to_s
나는이 이미지 진형 : 132B 4
: 돌아 왔어요했다
결과 여기를 읽어 RTesseract를 사용하여 내 루비 코드입니다.
저는 0이 B로 돌아 왔음을 이해합니다 (나는 그것을 풀 수 있습니다). 다만, 아래와 같이 3
, 0
, 8
은 전혀 돌아 오지 않았습니다. 이제 저는 그것이 3과 0을 읽는 방법을 이미 알고 있다는 것을 알고 있습니다, 왜냐하면 그것은 첫 번째 숫자에서 그것을했기 때문입니다. 다음과 같은 번호를 렌더링하는 데 문제가 있다는 것을 알았으므로 흑백으로 만들었습니다. 132B 4
: 결과는 여전히 거슬러 온 그러나
:
이 내가 시도 두 번째 이미지입니다.
마지막으로 이미지를 자르고 마지막 3 개의 숫자 만 시도했습니다. 여기
는 이미지 :하지만 스크립트를 실행했을 때, 그것은 어떤 결과를 반환하지 않습니다. 왜 내가 최종 숫자를 읽을 수 없는지에 대한 생각은 없습니까?
저는 Ruby 2.2.2, rTesseract 2.1.0 및 MiniMagick 4.5.1을 사용하고 있습니다. 내가
이미지를 흰색으로 검은 색 텍스트로 바꾸고 이미지 압축 아티팩트를 제거합니다. @ eric-duminil의 제안입니다. 일관되고 알려진 글꼴의 경우, 필자 혼자만의 순진한 픽셀 - 픽셀 일치를 정확하게 처리했습니다. – Kache
@Kache : 재미있는 것 같습니다. 링크가 있습니까? –
@EricDuminil 아, 링크가 없습니다. 그것은 매우 순진한 방법이었습니다 : 1. 표준화 된 블랙 - 온 - 화이트 문자로 텍스트를 수정하고 자르십시오 2. 글꼴을 위해 나타날 수있는 가능한 모든 문자 이미지와 변이를 datamine 3. 픽셀 - 픽셀 차이가 가장 적은 문자를 선택하십시오 , 모든 문자 (예 : 문자 픽셀 높이/너비, 검은 색/흰색 픽셀 수 등)의 모든 픽셀을 계산할 필요가없는 몇 가지 트릭 사용 – Kache