MATLAB 实现的传统机器视觉分类流水线:HSV 颜色空间分割 → 形状特征提取 → SVM 多分类。 面向苹果、香蕉、橙子、梨四类目标,可用于智能分拣场景的算法验证。
本项目为图像处理课程设计,全部代码与实验由本人独立完成。
| 阶段 | 做法 |
|---|---|
| 数据增强 | 水平翻转 + 30° 步长旋转(0°–330°),8 张原图扩充至 192 张 |
| 预处理与分割 | HSV 双阈值分割(S > 0.15 且 V > 0.1)+ 面积滤波(800 px)+ 孔洞填充 + 最大连通域提取 |
| 特征提取 | 16 维 H 通道归一化直方图 + 2 维形状特征(长宽比、圆形度)= 18 维融合特征 |
| 分类器 | SVM + ECOC 多分类框架(fitcecoc,一对一编码) |
| 评估 | 留一交叉验证(LOOCV),共 192 次训练与测试 |
| 特征组合 | LOOCV 准确率 |
|---|---|
| 仅颜色特征(16 维 H 直方图) | 约 95% |
| 仅形状特征(2 维长宽比 + 圆形度) | 约 60% |
| 融合特征(18 维) | 约 98% |
结论:颜色特征已能取得较高准确率,形状特征的互补使分类准确率进一步提升,验证了多特征融合在相似颜色/相似形状目标上的判别优势。
├── src/
│ ├── shuiguoshibie.m 主流程:分割 → 特征提取 → 训练 SVM → LOOCV 评估
│ ├── DataAugmentation.m 数据增强:翻转 + 旋转,生成 192 张训练样本
│ └── TestNewImage.m 单张新图片预测演示
├── model/
│ └── FruitModel.mat 训练好的 SVM 模型与特征标准化参数
├── data/ 原始样本图片(每类 2 张)
└── docs/images/ 算法流程图、预处理与分割效果图
环境:MATLAB R2020a 及以上(需 Image Processing Toolbox 与 Statistics and Machine Learning Toolbox)。
% 1) 进入 src 目录,生成增强数据集(会在 data/ 下生成 AugmentedData/)
cd src
DataAugmentation
% 2) 训练 + 交叉验证评估
shuiguoshibie
% 3) 单张图片预测
TestNewImage脚本已改为自动定位仓库内的数据目录,无需手动修改路径。
data/AugmentedData/(192 张增强图)未纳入版本控制,运行 src/DataAugmentation.m 即可重新生成。