(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默认路径:
测试:
图片
代码:
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'}