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