728x90
[01] 이미지 처리와 텍스트 인식
1. Pillow 설치
- 이미지처리 기본 기능을 지원하며 사용이 쉬움.
- http://pillow.readthedocs.org
C:\Users\soldesk>pip install pillow
Collecting pillow
Downloading Pillow-4.1.0-cp36-cp36m-win_amd64.whl (1.5MB)
100% ■■■■■■■■■■■■■■■■■■■■ 1.5MB 211kB/s
Collecting olefile (from pillow)
Downloading olefile-0.44.zip (74kB)
100% ■■■■■■■■■■■■■■■■■■■■ 81kB 5.3MB/s
Installing collected packages: olefile, pillow
Running setup.py install for olefile ... done
Successfully installed olefile-0.44 pillow-4.1.0
2. 이미지에 블러 효과 주기
[실행 화면]
[실행 화면]
블러 이미지 출력
▷ tesseract.basicImage.py
- 이미지는 http://pillow.readthedocs.org 사이트에서 다운받습니다.
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
from PIL import Image, ImageFilter
kitten = Image.open("python.png")
blurryKitten = kitten.filter(ImageFilter.GaussianBlur)
blurryKitten.save("python_blurred.jpg")
blurryKitten.show()
-------------------------------------------------------------------------------------
3. Tesseract(테서렉트) 설치
- 광학 문자 인식(Optical character recognition: OCR) 라이브러리
- https://github.com/tesseract-ocr/tesseract/wiki -> Downloads
-> https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha-for-windows 접속
Windows Installer made with MinGW-w64 링크 클릭 'tesseract-ocr-setup-4.00.00dev.exe' 다운로드
-> 'C:\Tesseract-OCR' 폴더에 설치 (기본 경로에 설치하면 보안 관련 에러 발생함)
- 광학 문자 인식(Optical character recognition: OCR) 라이브러리
- https://github.com/tesseract-ocr/tesseract/wiki -> Downloads
-> https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha-for-windows 접속
Windows Installer made with MinGW-w64 링크 클릭 'tesseract-ocr-setup-4.00.00dev.exe' 다운로드
-> 'C:\Tesseract-OCR' 폴더에 설치 (기본 경로에 설치하면 보안 관련 에러 발생함)
4. Numpy 설치
- 수치 계산을위한 Python 패키지
F:\201701_python\ws_python\scraping\crawler1>pip install numpy
Collecting numpy
Downloading numpy-1.12.1-cp36-none-win_amd64.whl (7.7MB)
100% ■■■■■■■■■■■■■■■■■■■■ 7.7MB 114kB/s
Installing collected packages: numpy
Successfully installed numpy-1.12.1
5. pytesseract 설치
C:\Users\soldesk>pip install pytesseract
Collecting pytesseract
Downloading pytesseract-0.1.6.tar.gz (149kB)
100% ■■■■■■■■■■■■■■■■■■■■ 153kB 1.6MB/s
Installing collected packages: pytesseract
Running setup.py install for pytesseract ... done
Successfully installed pytesseract-0.1.6
6. pytesseract 한글 처리
- https://pypi.python.org/pypi/pytesseract
접속하여 파일을 다운받습니다.
- C:\Python36\Lib\site-packages\pytesseract 폴더에 'pytesseract.py' 파일을 덮어씁니다.
[02] OCR 실습
1. 윈도우 콘솔에서의 인식 테스트
1) 이미지에서 영문 인식
C:\Tesseract-OCR>tesseract ocr_eng.jpg stdout -l eng > ocr_eng.txt
Existing System
The existing tesseract-OCR supports English language as
default and also supports languages like Dutch, Spanish, Italian,
French and German. All these languages are trained to
tesseract OCR, but languages like Tamil, Malayalam are not
much trained to OCR. There are no GUI available for tesseract
in tamil and training tesseract is a big task which an
intermediate persons too feel complex for training it. Since
Tesseract OCR Engine is command line Tool, usage of OCR is
much less.
2) 이미지에서 한글 인식
2. local 이미지 인식C:\Tesseract-OCR>tesseract ocr_kor.jpg stdout -l kor > ocr_kor.txt
보 도 될 뉴 스 의 크 기 와 방 향 을 정하는 것 은 기 본 적 으 로 는 기 자 이 지 만 . 이 에 못지 않게 큰
영 향 력 을 행 사 하는 것이 ' 데 스크 즉 각 언 론 사 의 팀 장 이 나 부 장 또는 국 장 들 이 다 . 따 라서
회 사 와 조 직 의 규 모 가 커지면 커질 수록 홍보 담 당 자 나 홈 보 책 임 자 , 나 아 가 서는 680 가
언 론 사 의 간 부 와 접 속 해 관 제 를 항 성 하는 것이 낄 요하.
언 론 인 에게는 예 의 를 갖고 대 하 고 늘 도 와 주는 자 세 가 되어 있다는 것 을 보 여 주 고.
마 감 시간 이 전 에 자 료 나 사 진 을 제 공 해 주는 것을 절 칙 으로 할 때 언 론 인 은 그
홍 보 담 당 자 를 믿고 함께 일 을 하게 되 는 것 이다.
기 자 에게 언론 보 도 를 교 정 하면서 자신 없 는 태 도 를 갖는 것은 언 론 과 진 해 지 는 데 방 해 가
된 다 . 언 룬 의 중 요 한 임 무 가운데 하 나 가 보도 요정 을 받 아 들 이 고 이 것 이 뉴 스 가 치 가
있는지 판 단 하 고 기 사 화 하는 것 이 다 . 기 자 와 진 해 지 려면 진 화 력 을 갖고 활 기 자게
대 화 하도록 노 력 해 야 한 다 . 만 나 자 마자 쉽게 서 먹 서 먹 함 을 지을 수 있는 진 화 력 과
명 랑 함 은 홍보 담 당 자 가 갖 주어야 할 중요한 덕 목 이다.
홍보 담 당 자 는 기 자 와 상 대 를 할 때 낫 설 고 서 먹 서 멱 한 관 계 를 빨리 끝 내고
터 놓고 대 화 를 나눌 수 있어야 한다. 그 러 려 면 기 자 와 만 나 거나 전 화 를 할 때에는
오랜만에 만 났 더라도 바로 며칠 전에 만난 친 구 인 것처럼 반 가 워 하고 기 자 가
거 리 감 을 느끼지 않도록 노력해야 한다. 그렇다고 해 서 지나치게 경솔한
사 람 이라는 느 낌 을 주는 것은 좋지 않다.
- ocr.py 파일을 'C:\Tesseract-OCR' 복사후 실행합니다.
1) 영문 이미지 인식
2) 한글 이미지 인식
C:\Tesseract-OCR>python ocr.py ocr_kor.jpg kor
보 도 될 뉴 스 의 크 기 와 방 향 을 정하는 것 은 기 본 적 으 로 는 기 자 이 지
만 . 이 에 못지 않 게 큰
명 향 력 을 행 사 하는 것이 : 데 스크 즉 각 언 론 사 의 팀 장 이 나 부 장 또는
국 장 들 이 다 . 따 라서
회 사 와 조 직 의 규 모 가 커지면 커질 수록 총 보 담 당 자 나 홈 보 책 임 자 ,
나 아 가 서는 680 가
언 론 사 의 간 부 와 접 속 해 관 제 를 항 성 하는 것이 낄 요 하다.
안 론 인 에게는 예 의 를 갖고 대 하 고 늘 도 와 주는 자 세 가 되어 있다는 것 을
보 여 주 고.
마 감 시간 이 전 에 자 료 나 사 진 을 제 공 해 주는 것을 철 칙 으로 할 때 언 론
인 은 그
총 보 담 당 자 를 믿고 함께 일 을 하게 되 는 것 이다.
기 자 에게 언론 보 도 를 교 청 하 면 서 자신 없 는 태 도 들 갖는 것은 언 론 과
진 해 지 는 데 방 해 가
된 다 . 언 론 의 중 요 한 임 무 가운데 하 나 가 보도 요정 을 받 아 들 이 고 이
것 이 뉴 스 가 지 가
있는지 판 단 하 고 기 사 화 하는 것 이 다 . 기 자 와 진 해 지 려면 진 화 력 을
갖고 촬 기 자 게
대 화 하도록 노력해야 한 다 . 만 나 자 마자 쉽게 서 먹 서 멱 함 을 지을 수 있 는
진 화 력 과
명 랑 함 은 홍보 담 당 자 가 갓 주 어 야 할 중요한 덕 목 이다.
홍보 담 당 자 는 기 자 와 상 대 를 할 때 낫 설 고 서 먹 서 먹 한 관 계 를 빨리
끝 내고
터 놓고 대 화 를 나눌 수 있어야 한다. 그 러 려 면 기 자 와 만 나 거나 전 화 를
할 때에는
오랜만에 만 났 더라도 바로 며 질 전에 만난 친 구 민 것처럼 반 가 워 하고 기 자
가
거 리 감 을 느끼지 않도록 노력해야 한다. 그렇다고 해 서 지나치게 경솔한
사 람 이라는 느 낌 을 주는 것은 종지 않다.
▷ tesseract.ocr.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
import sys
from PIL import Image
from pytesseract import image_to_string
import os
def OCR(imgfile, language):
img = Image.open(imgfile)
text = image_to_string(img, lang=language)
print(text)
os.chdir('C:/Tesseract-OCR') # 현재 기준 폴더 변경
fw = open(imgfile[:-4] + '.txt', 'w')
fw.write(text)
fw.close()
OCR(sys.argv[1], sys.argv[2])
-------------------------------------------------------------------------------------
3. web page 이미지 인식
- io.StringIO: 메모리 상에서 파일처럼 인식을 시켜주는 모듈
[실행 화면]- io.StringIO: 메모리 상에서 파일처럼 인식을 시켜주는 모듈
1) 영문 이미지 인식
python ocr_web.py http://soldeskit3.cafe24.com/python/ocr_eng.jpg eng
2) 한글 이미지 인식
2) 한글 이미지 인식
python ocr_web.py http://soldeskit3.cafe24.com/python/ocr_kor.jpg kor
▷ tesseract.ocr_web.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
import sys
from PIL import Image
from pytesseract import image_to_string
import os
from io import StringIO
from urllib.request import urlretrieve
# http://image.kyobobook.co.kr/images/book/xlarge/698/x9788968484698.jpg
def OCR(imgurl, language):
url_list = str(imgurl).split('/')
# print(url_list)
length = len(url_list)
save_file = url_list[-1]
print(save_file)
urlretrieve(imgurl, save_file)
img = Image.open(save_file)
text = image_to_string(img, lang=language)
print(text)
os.chdir('C:/Tesseract-OCR') # 현재 기준 폴더 변경
fw = open(save_file[:-4] + '.txt', 'w')
text = str(text).strip();
fw.write(text)
fw.close()
OCR(sys.argv[1], sys.argv[2])
-------------------------------------------------------------------------------------
728x90
'빅데이터 프로그래밍 > Python' 카테고리의 다른 글
[centos] Python(파이썬) 버전 변경 (0) | 2022.03.28 |
---|---|
[Python] 35. [Scraping] Open API를 활용한 데이터 수집, MySQL 서버로 수집된 데이터의 저장 (0) | 2017.08.21 |
[Python] 34. [MySQL] JDBC 드라이버설정, Eclipse Data Source Explorer의 MySQL 설정 (0) | 2017.08.21 |
[Python] 33. [MySQL] 서버 실행, 관리자 root계정 암호화, root 접속 설정, 계정 생성 (0) | 2017.08.21 |
[Python] 32. [MySql] 데이터베이스 개론, MySQL 5.6 Potable(개발자 유형) 설치, 한글 깨짐, 처리, 보관, 수정, 삭제 (0) | 2017.08.21 |
댓글