>source

하루 내내 판매, 직원 등을 자세히 설명하는 지하철에서 영수증을 받았으며 관리 클래스의 데이터를 추출해야합니다.

영수증의 사진을 가져 와서 pytesseract를 사용하여 \ n으로 구분 된 문자열로 처리했지만 이제 pd.read_csv 및 StringIO를 사용하여 데이터 프레임으로 변환하는 방법을 모릅니다. 이것이 최선의 방법인지 확인하지 마십시오. cv2를 사용하여 이미지를 더 잘 처리하도록 이미지를 편집해야 할 수도 있습니다.

import numpy as np
import pytesseract
from PIL import Image
import pandas as pd
path = 'C:\\attachments\\'
monday = pytesseract.image_to_string(Image.open(path+'file1-1.jpeg'),lang='eng')
from StringIO import StringIO
mon = pd.read_csv(StringIO(monday),sep=r'\s',lineterminator=r'\n')
print(mon)

현재 월요일에 변수 중 일부입니다.

"\nTIME HOURS :\nPERIOD SALES UNITS WORKED PROD SPLH\nZhan emmoo «Ct (iti ;:t‘«é‘«‘i CSD\n3A-4A $0.00 0 0 0 $0.00\n44-54 =: $0.00 SssOO 0 0 $0.00\n5A-6A $0.00 0 0 0 $0.00\nbA-7A $0.00 0 0 0 $0.00\n7A-BA =s«$0.00-Sss«OOs«*O0.80 0 $0.00\nBA-9A 60,00 . Qge2.00 0 $0.00\nQA-10A $33.68 6 2,00 3.00 $16.84\n104-114 $61.07 9 2.13 4.23 $28.67\n11A-12P$238.82 33 5,00 6.60 $47.76"

이것은 데이터 프레임처럼 보일 것입니다 :

Period Sales Units Worked Prod SPLH
3A-4A  $0.00  0      0     0   $0.00
bA-7A  $0.00  0      0     0   $0.00


  • 답변 # 1

    tesseract의 결과를 Pandas 데이터 프레임으로 직접 가져올 수 있습니다 :

    monday = pytesseract.image_to_data(Image.open(path+'file1-1.jpeg'),lang='eng', output_type='data.frame')
    
    

    이제 monday  그러나 데이터 계층은 계층 구조의 각 수준에 대해 최소한 한 행을 포함하므로 더 많은 처리가 필요합니다. 출력을 확인하고 구성 방법을 확인하십시오.

관련 자료

  • 이전 메모리보다 큰 메모리 어레이를 정규화하는 방법은 무엇입니까?
  • 다음 angularjs - 다른 ng-app에서 동일한 이름의 ng-controller가 작동하지 않습니다