50 lines
1.3 KiB
Markdown
50 lines
1.3 KiB
Markdown
# 数字识别程序
|
||
|
||
这是一个使用OpenCV识别图片中数字1和2的Python程序。
|
||
|
||
## 功能特点
|
||
|
||
- 使用OpenCV进行图像预处理和特征提取
|
||
- 基于轮廓检测和特征分析的数字分类
|
||
- 能够区分数字1和2的形态特征
|
||
- 自动保存识别结果图片
|
||
|
||
## 安装依赖
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
## 使用方法
|
||
|
||
1. 将需要识别的图片放在`imgs/`文件夹中
|
||
2. 运行程序:
|
||
```bash
|
||
python text_image.py
|
||
```
|
||
|
||
## 程序流程
|
||
|
||
1. **图像预处理**:转换为灰度图、高斯模糊去噪、自适应阈值二值化、形态学操作
|
||
2. **轮廓检测**:查找图像中的轮廓,筛选可能的数字区域
|
||
3. **特征提取**:提取ROI的像素密度、水平和垂直投影等特征
|
||
4. **数字分类**:基于特征分析判断是数字1还是2
|
||
5. **结果输出**:在原图上标注识别结果并保存
|
||
|
||
## 识别原理
|
||
|
||
- **数字1**:通常较细,垂直投影集中在中间,方差较小
|
||
- **数字2**:通常较宽,有弯曲部分,垂直投影方差较大
|
||
|
||
## 输出文件
|
||
|
||
程序会在`imgs/`文件夹中生成:
|
||
- `result_1.jpg`:第一张图片的识别结果
|
||
- `result_2.jpg`:第二张图片的识别结果
|
||
|
||
## 注意事项
|
||
|
||
- 确保图片清晰,数字对比度足够
|
||
- 程序会自动过滤太小的轮廓
|
||
- 识别结果包含位置信息和置信度
|