tessera使用技巧
软件: tessera
Tesseract OCR 使用方法全面指南
Tesseract 是一个由 Google 维护的开源 OCR(光学字符识别)引擎,支持超过 100 种语言的文本识别,包括中文。以下是 Tesseract 的详细使用方法,涵盖安装、基本命令、高级参数配置以及编程集成等方面。
一、安装与配置
1. 系统安装
Windows系统:
下载官方安装包(如 tesseract-ocr-w64-setup-v5.3.0.20231005.exe)并运行安装程序
安装时勾选附加语言包(如中文简体 chi_sim)
将安装路径(如 C:\Program Files\Tesseract-OCR)添加到系统环境变量 PATH 中
Linux系统(Ubuntu/Debian):
sudo apt update
sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-chi-sim 中文语言包
macOS系统:
brew install tesseract
brew install tesseract-lang 语言包
2. 验证安装
安装完成后,在命令行中输入以下命令验证:
tesseract --version
tesseract --list-langs 查看已安装的语言包
如果显示版本号和已安装的语言列表,说明安装成功。
二、基础命令行使用
1. 基本识别命令
最简单的识别命令格式为:
tesseract 输入图片路径 输出文件名 [选项]
示例:
tesseract image.png output -l chi_sim 识别中文
tesseract image.jpg output -l eng 识别英文
2. 输出格式控制
Tesseract 支持多种输出格式:
tesseract image.png output txt 纯文本(默认)
tesseract image.png output pdf 可搜索PDF
tesseract image.png output hocr 结构化HTML(包含位置信息)
tesseract image.png output tsv 制表符分隔值(包含文本、位置和置信度)
3. 多语言识别
可以同时指定多种语言进行识别:
tesseract image.png output -l eng+chi_sim 中英文混合识别
tesseract image.png output -l chi_sim+jpn 中文和日文识别
注意:语言代码的顺序会影响识别结果,建议将主要识别语言放在前面。
三、高级参数配置

1. 页面分割模式(PSM)
--psm 参数控制 Tesseract 如何处理图像中的文本布局,对识别准确率影响很大:
tesseract image.png output --psm 6 假设为统一文本块(适合文档)
tesseract image.png output --psm 7 单行文本模式(适合截图或简单图像)
tesseract image.png output --psm 11 稀疏文本(适合表格或不规则布局)
常用 PSM 模式:
3:全自动页面分割(默认)
6:单块文本
7:单行文本
11:稀疏文本
2. OCR 引擎模式(OEM)
--oem 参数选择识别算法:
tesseract image.png output --oem 1 仅使用传统引擎
tesseract image.png output --oem 3 默认LSTM神经网络(推荐)
3. 其他实用参数
tesseract image.png output -c preserve_interword_spaces=1 保留单词间空格
tesseract image.png output --dpi 300 指定图像DPI(提高扫描件识别率)
tesseract image.png output -c tessedit_char_whitelist=0123456789 只识别数字
四、编程语言集成
1. Python 集成
使用 pytesseract 库:
import pytesseract
from PIL import Image
Windows系统可能需要指定Tesseract路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
基本识别
text = pytesseract.image_to_string(Image.open('image.png'), lang='chi_sim')
print(text)
获取详细识别数据
data = pytesseract.image_to_data(Image.open('image.png'), output_type=pytesseract.Output.DICT)
for i in range(len(data['text'])):
if int(data['conf'][i]) > 60: 过滤低置信度结果
print(f"内容: {data['text'][i]}, 位置: ({data['left'][i]},{data['top'][i]})")
2. Java 集成
使用 Tess4J 库:
import net.sourceforge.tess4j.*;
public class OCRTest {
public static void main(String[] args) {
ITesseract instance = new Tesseract();
instance.setDatapath("/usr/share/tesseract-ocr/4.00/tessdata"); // 设置语言包路径
instance.setLanguage("chi_sim"); // 设置中文
try {
String result = instance.doOCR(new File("image.png"));
System.out.println(result);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
}
}
五、提高识别准确率的技巧
图像预处理:
使用 OpenCV 进行灰度化、二值化、去噪等处理
import cv
img = cv2.imread('image.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
cv2.imwrite('processed.png', binary)
训练自定义模型:
对于特殊字体或行业术语,可以训练专用模型:
tesseract eng.custom.exp0.tif eng.custom.exp0 nobatch box.train
unicharset_extractor eng.custom.exp0.box
combine_tessdata eng.
批量处理:
使用脚本批量处理多个图像:
Linux/macOS Shell脚本
for file in *.png; do
tesseract "$file" "output_${file%.*}" -l chi_sim --psm
done
六、常见问题解决
中文识别乱码:
确认已安装中文语言包(chi_sim.traineddata)
检查图像是否包含繁体字(需额外加载 chi_tra)
表格识别错位:
使用 --psm 11(稀疏文本模式)
先用 OpenCV 检测表格线再分区识别
低分辨率图像:
使用 cv2.resize() 放大图像(保持宽高比)
应用超分辨率算法预处理
Tesseract 是一个功能强大且灵活的 OCR 工具,通过合理配置参数和适当的图像预处理,可以显著提高识别准确率。对于更复杂的需求,还可以考虑训练自定义模型或结合其他图像处理技术。
Tesseract 是一个由 Google 维护的开源 OCR(光学字符识别)引擎,支持超过 100 种语言的文本识别,包括中文。以下是 Tesseract 的详细使用方法,涵盖安装、基本命令、高级参数配置以及编程集成等方面。
一、安装与配置
1. 系统安装
Windows系统:
下载官方安装包(如 tesseract-ocr-w64-setup-v5.3.0.20231005.exe)并运行安装程序
安装时勾选附加语言包(如中文简体 chi_sim)
将安装路径(如 C:\Program Files\Tesseract-OCR)添加到系统环境变量 PATH 中
Linux系统(Ubuntu/Debian):
sudo apt update
sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-chi-sim 中文语言包
macOS系统:
brew install tesseract
brew install tesseract-lang 语言包
2. 验证安装
安装完成后,在命令行中输入以下命令验证:
tesseract --version
tesseract --list-langs 查看已安装的语言包
如果显示版本号和已安装的语言列表,说明安装成功。
二、基础命令行使用
1. 基本识别命令
最简单的识别命令格式为:
tesseract 输入图片路径 输出文件名 [选项]
示例:
tesseract image.png output -l chi_sim 识别中文
tesseract image.jpg output -l eng 识别英文
2. 输出格式控制
Tesseract 支持多种输出格式:
tesseract image.png output txt 纯文本(默认)
tesseract image.png output pdf 可搜索PDF
tesseract image.png output hocr 结构化HTML(包含位置信息)
tesseract image.png output tsv 制表符分隔值(包含文本、位置和置信度)
3. 多语言识别
可以同时指定多种语言进行识别:
tesseract image.png output -l eng+chi_sim 中英文混合识别
tesseract image.png output -l chi_sim+jpn 中文和日文识别
注意:语言代码的顺序会影响识别结果,建议将主要识别语言放在前面。
三、高级参数配置

1. 页面分割模式(PSM)
--psm 参数控制 Tesseract 如何处理图像中的文本布局,对识别准确率影响很大:
tesseract image.png output --psm 6 假设为统一文本块(适合文档)
tesseract image.png output --psm 7 单行文本模式(适合截图或简单图像)
tesseract image.png output --psm 11 稀疏文本(适合表格或不规则布局)
常用 PSM 模式:
3:全自动页面分割(默认)
6:单块文本
7:单行文本
11:稀疏文本
2. OCR 引擎模式(OEM)
--oem 参数选择识别算法:
tesseract image.png output --oem 1 仅使用传统引擎
tesseract image.png output --oem 3 默认LSTM神经网络(推荐)
3. 其他实用参数
tesseract image.png output -c preserve_interword_spaces=1 保留单词间空格
tesseract image.png output --dpi 300 指定图像DPI(提高扫描件识别率)
tesseract image.png output -c tessedit_char_whitelist=0123456789 只识别数字
四、编程语言集成
1. Python 集成
使用 pytesseract 库:
import pytesseract
from PIL import Image
Windows系统可能需要指定Tesseract路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
基本识别
text = pytesseract.image_to_string(Image.open('image.png'), lang='chi_sim')
print(text)
获取详细识别数据
data = pytesseract.image_to_data(Image.open('image.png'), output_type=pytesseract.Output.DICT)
for i in range(len(data['text'])):
if int(data['conf'][i]) > 60: 过滤低置信度结果
print(f"内容: {data['text'][i]}, 位置: ({data['left'][i]},{data['top'][i]})")
2. Java 集成
使用 Tess4J 库:
import net.sourceforge.tess4j.*;
public class OCRTest {
public static void main(String[] args) {
ITesseract instance = new Tesseract();
instance.setDatapath("/usr/share/tesseract-ocr/4.00/tessdata"); // 设置语言包路径
instance.setLanguage("chi_sim"); // 设置中文
try {
String result = instance.doOCR(new File("image.png"));
System.out.println(result);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
}
}
五、提高识别准确率的技巧
图像预处理:
使用 OpenCV 进行灰度化、二值化、去噪等处理
import cv
img = cv2.imread('image.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
cv2.imwrite('processed.png', binary)
训练自定义模型:
对于特殊字体或行业术语,可以训练专用模型:
tesseract eng.custom.exp0.tif eng.custom.exp0 nobatch box.train
unicharset_extractor eng.custom.exp0.box
combine_tessdata eng.
批量处理:
使用脚本批量处理多个图像:
Linux/macOS Shell脚本
for file in *.png; do
tesseract "$file" "output_${file%.*}" -l chi_sim --psm
done
六、常见问题解决
中文识别乱码:
确认已安装中文语言包(chi_sim.traineddata)
检查图像是否包含繁体字(需额外加载 chi_tra)
表格识别错位:
使用 --psm 11(稀疏文本模式)
先用 OpenCV 检测表格线再分区识别
低分辨率图像:
使用 cv2.resize() 放大图像(保持宽高比)
应用超分辨率算法预处理
Tesseract 是一个功能强大且灵活的 OCR 工具,通过合理配置参数和适当的图像预处理,可以显著提高识别准确率。对于更复杂的需求,还可以考虑训练自定义模型或结合其他图像处理技术。