光学字符识别系统 (OCRSys) - README
项目介绍
本项目是一个基于MATLAB开发的基础光学字符识别(OCR)系统,旨在从包含印刷体字符的图像中自动识别并提取文本内容。系统通过完整的图像处理流程,包括预处理、字符区域定位、分割与识别,最终输出文本结果。代码结构清晰,注释详尽,特别适合OCR初学者学习基本算法原理与实践。
功能特性
- 图像预处理:支持图像灰度化、二值化、噪声滤波、形态学操作等,提升图像质量。
- 字符区域检测:利用连通域分析或投影法定位图像中的字符区域。
- 字符分割:将检测到的字符区域精确分割为单个字符图像。
- 字符识别:提供两种识别方案:基于模板匹配的快速识别,或使用KNN等简单分类器的机器学习识别。
- 结果输出:识别出的文本字符串可直接输出;可选显示中间处理结果(如二值化图像、字符边界框);支持生成每个字符的识别置信度报告。
- GUI界面:提供简易图形用户界面,方便用户选择图片、查看处理流程与识别结果。
使用方法
- 确保MATLAB环境已准备就绪(参见系统要求)。
- 启动系统:运行
main.m主程序文件,系统将自动启动GUI界面。 - 加载图像:在GUI界面中点击“选择图片”按钮,从本地磁盘选取一个包含印刷体字符的图像文件(JPG、PNG、BMP等格式)。
- 执行识别:点击“开始识别”按钮,系统将自动执行完整的OCR流程。
- 查看结果:识别出的文本将显示在GUI的结果区域。用户可选择查看中间步骤的可视化结果(如字符分割效果)和详细的置信度报告。
系统要求
- 平台: MATLAB R2018a 或更高版本。
- 必要工具箱: Image Processing Toolbox(图像处理工具箱)。若使用KNN分类器进行识别,则还需安装 Statistics and Machine Learning Toolbox。
文件说明
主程序文件是整个系统的核心控制模块,负责协调整个OCR工作流的执行。它实现了图形用户界面的初始化与事件响应,完成了从图像加载、预处理、字符检测与分割到字符识别与结果显示的全部核心任务,并对各处理阶段的关键参数进行集中管理与配置。