(Optical Character Recognition,光学字符识别)技术,将图片、照片上的文字内容,直接转换为文本。opencv不自带ocr,即使从cv4.4以后的external中包含cv::text识别文字,也需要用户先预装tesseract。

Tesseract是最主流的OCR开源库,安装:

1. Windows:

有Binary安装文件可以即装即用,但是只是个可执行文件不能用来开发,开发的话可以源码安装,路径​​https://github.com/tesseract-ocr/tesseract/​​,cmake以后用vs打开,但是这玩意依赖太多,没成功。

推荐方法:安装sw和vcpkg,然后命令:



.\vcpkg install tesseract:x64-windows


2. Mac:



brew install tesseract


3. Ubuntu



sudo add-apt-repository ppa:alex-p/tesseract-ocr
sudo apt-get update
sudo apt-get install tesseract-ocr


 

安装好后可装Python库:



pip install pytesseract


 

训练集需要另外下载,地址:​​https://github.com/tesseract-ocr/tessdata​

下载好后,Windows默认放在编译路径下的tessdata文件夹里,Mac默认路径:

Python - opencv (八) OCR_github

 

 

测试:

图片

 

代码:



1 import cv2
2 import pytesseract
3
4 if __name__ == '__main__':
5
6 # Read image path from command line
7 imPath = "../pics/2.jpg"
8
9 # Uncomment the line below to provide path to tesseract manually
10 # pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'
11
12 # Define config parameters.
13 # '-l eng' for using the English language
14 # '--oem 1' for using LSTM OCR Engine
15 config = ('-l eng --oem 1 --psm 3')
16
17 # Read image from disk
18 im = cv2.imread(imPath, cv2.IMREAD_COLOR)
19
20 # Run tesseract OCR on image
21 text = pytesseract.image_to_string(im, config=config, output_type=pytesseract.Output.DICT)
22
23 # Print recognized text
24 print(text)


输出:

{'text': 'WORLD FAMOUS BRAND\nPOP FASHION\nINSTLTUTIONS OF\nOUR DREAM AND HOPE\n\x0c'}