귀찮아서 자동화해! ~ 이미지 자동 로딩 실패 편 ~
이번 연시의 목표 입안을 위해 가치관 리스트를 활용하고 싶지만 질문 항목이 이미지만 쏟아지는 것이 토할 만큼 귀찮은...
그래서 문자의 추출을 자동으로 가고 싶다고 생각합니다.
실행 환경
mac
python3
환경 anaconda
이미지를 로드하는 방법
・PIL(pillow)
· OpenCV
· scikit-image
가장 많이 사용되는 것이 PLI 같다.
pillow는 파이썬으로 대표적인 이미지 처리 라이브러리로, 이미지의 리사이즈나 그리기를 쉽게 할 수 있습니다.
form PIL import Image,ImageFilter
im = Image.open('画像ファイル名')
텍스트로 변환하는 방법
・화상을 텍스트로 변환하는 기술을 OCR(Optical Character Recoding)이라고 한다.
· OCR은 OCR 엔진이라는 소프트웨어를 사용하여 이미지 데이터에서 텍스트를 추출합니다.
· 이번에는 오픈 소스 Tesseract OCR 사용
· 또한 Python에서 OCR 엔진을 사용할 수 있도록 하는 대표적인 라이브러리가 PyOCR입니다.
txt = tool.iamge_to_string(
Image.open('画像ファイル名')
lang=言語名,
builder=pyocr.builders.TextBuilder()
)
실제로 PNG 이미지를 텍스트로 변환해보세요
brew install tesseract
pyocr의 일본어 학습 모델 취득을 위해 wget도 설치
brew install wget
kr.traineddata 얻기
wget https://github.com/tesseract-ocr/tessdata/raw/4.00/jpn.traineddata
mv jpn.traineddata /usr/local/Cellar/tesseract/4.1.1/share/tessdata
※Path가 존재하지 않는 경우, 이하의 커멘드로 tesseract의 path와 버젼 확인
which tessaract
tessaract -v
· 코드 실행
from PIL import Image
import sys
import pyocr
import pyocr.builders
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
# The tools are returned in the recommended order of usage
tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))
# Ex: Will use tool 'libtesseract'
langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))
lang = 'jpn'
print("Will use lang '%s'" % (lang))
# Ex: Will use lang 'fra'
# Note that languages are NOT sorted in any way. Please refer
# to the system locale settings for the default language
# to use.
txt = tool.image_to_string(
Image.open('target.png'),
lang=lang,
builder=pyocr.builders.TextBuilder()
)
# txt is a Python string
print(txt)
변환 소스
변환 결과
python3 Image-To-Text.py
Will use tool 'Tesseract (sh)'
Available languages: eng, jpn, osd, snum
Will use lang 'jpn'
あ ⑤ り の ま ま の ⑧② を る け れ て も ぅ う
⑧② の ⑧ 見 や ① ま ょ し く な ぇ る
な に が 恒 美 な こ と そ ま a す る
I し く て ワ ク ワ ク ⑨ る M を す る
⑯BAMN カ を ほ っ
H ま に ガ し て き せ る 街 っ て fW す る
ま セ に し Au で ⑧② で Aea
⑧ の ま わ り の 美 し D も の を 味 ち う
HR&⑦⑥④ と ぅ そ a る
iams aaliitcdiits
‥ た ロ ラ ェ テ ィ ま か ④ 入 $ を ま る
EROEREfaiR ezRtd
⑤ @ れ な い B ま や igu を ほ o
医 ま そ i し て Ma
①⑧f の ① に ⑤ っ こ と を す る
医 ま と ③ カ し て M② を す る
GEiESimEreiirimeikid
IR し く て W な ァ イ テ ァ を ま ど
匣 が ⑤ っ て 種 れ aREe
⑧② の 製 阿 と 口 せ る 木 た す
IIN の 現 M と 00 し ④ か ぅ ょ aa
ス リ ル と BA に 迦 ぅ た ん キ を き ゃ
ー に ド ク ッ そ っ 0 ず i き k 牡 き る
な っ て な な を 品 h る
ERte itha taiii
Reaeimtiisaci
R た ④ 琴 0 も mmWk な じ て
N 入 そ f し な か ら ま き る
IR⑧ て Mi+S ぇ る ぁ そ る
国 ん で ま し と こ と
⑧②0⑨ を ①A に ぁ た ぇ る
⑧② が ょ し い と ⑧ ぅ と ち り に B あ ず る
⑧② を 合 え た な な の 思 ⑧ そ き ぇ る
R と R ま る M す
や が で IM ょ く ま き る
HA の ① に z っ こ と
② ソ を っ か ず E に ま き る
ポ ッ テ ィ フ で ま W に よ き る
① 林 で R ス め に $ き る
ム 生 M が の ユ ー ェ ュ ス な m を 見 る
H&lcmtg し A い て で $ き る
⑧②0 せ 荷 に ー ま り 0 り
끔찍하네요...
이미지의 화질도 있나요, 아니면 라이브러리 문제일까요, 어쨌든 읽을 수 없습니다 ...
(추가) Cloud Vision API는 단연 정밀도가 좋습니다 ...
Google의 API, 과연 정밀도가 좋네요.
시간을 찾아 다시 구현하고 싶습니다.
참고
h tps://아이누누. 코 m / 카치칸 - st /
htps : // 코 m / 케이크 t / ms / 7d424000c8d35 에 5146 에 4
htps // 푹신푹신 ぃふぇしft. 코 m / 테세라 ct_o cr
h tps : // 음 b. 네 t /에서 v / 마 콧 w 게 t こんまん d ん s たる l /
h tps : // c ぉ d. 오, ぇ. 코m/ゔぃ시온/? hl = 그럼
Reference
이 문제에 관하여(귀찮아서 자동화해! ~ 이미지 자동 로딩 실패 편 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kimkiyong/items/34a77513caa938865f0f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)