文字识别程序(改进版)
这是一个使用OpenCV识别图片中文字的Python程序,采用先识别白色区域再识别文字的两步法策略。
功能特点
- 两步识别策略:先检测白色区域,再在白色区域内识别文字
- 使用HSV色彩空间精确分离白色区域
- 基于轮廓检测和特征分析的文字分类
- 能够识别数字1、2和字母B等字符
- 自动保存识别结果图片,包含区域标注和字符识别
安装依赖
pip install -r requirements.txt
使用方法
- 将需要识别的图片放在
imgs/
文件夹中 - 运行程序:
python text_image.py
程序流程
第一步:白色区域检测
- 转换到HSV色彩空间
- 使用颜色阈值分离白色区域
- 形态学操作连接相近区域
- 轮廓检测和筛选
第二步:文字识别
- 在白色区域内提取ROI
- 二值化处理突出文字
- 查找文字轮廓
- 特征提取和分类
识别原理
- 数字1:垂直投影方差小,水平投影方差小,中心密度低
- 数字2:垂直投影方差大,水平投影方差大,中心密度高
- 字母B:水平投影方差大,整体密度高
输出说明
- 蓝色边框:标注检测到的白色区域
- 绿色边框:标注成功识别的字符
- 红色边框:标注无法识别的字符
- 文字标签:显示识别结果(1、2、B、unknown)
输出文件
程序会在imgs/
文件夹中生成:
result_1_improved.jpg
:第一张图片的识别结果result_2_improved.jpg
:第二张图片的识别结果
优势
- 避免了复杂背景的干扰
- 提高了文字识别的准确性
- 清晰的区域划分和结果展示
- 更好的噪声过滤
注意事项
- 确保图片中有明显的白色区域
- 白色区域内的文字对比度要足够
- 程序会自动过滤太小的区域和轮廓
- 识别结果包含区域ID和字符ID信息