# SVM细胞衍射图像分类 **Repository Path**: s010m00n/svm-cell-graph-classification ## Basic Information - **Project Name**: SVM细胞衍射图像分类 - **Description**: No description available - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-14 - **Last Updated**: 2026-01-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 生物医学大数据挖掘 - 期末项目 ## 项目概述 本项目是一个基于 **GLCM(灰度共生矩阵)特征提取** 的 **细胞分类系统**,用于分析和分类两种细胞(Jurkat 和 Ramos)的衍射图像。这是一个 Windows 桌面应用程序,使用 C++ 开发,集成了图像处理、特征提取、机器学习分类和数据库管理功能。 ## 主要功能 ### 1. GLCM 特征提取 - 从灰度 BMP 图像中提取 20 种纹理特征 - 基于灰度共生矩阵(Gray Level Co-occurrence Matrix)算法 - 支持可配置的距离参数 d ### 2. 细胞分类 - 分类两种细胞类型:Jurkat 和 Ramos - 基于细胞衍射图像模式进行识别 - 集成 LibSVM 进行机器学习分类 ### 3. 批处理模式 - 批量处理多个图像文件 - 自动提取所有图像的特征 - 将结果存储到数据库 ### 4. 数据库管理 - 使用 Microsoft Access 数据库存储特征数据 - 维护样本图像和分类标签 - 支持 SVM 训练数据导出 ## 支持的 20 种 GLCM 特征 1. **ASM** - 角二阶矩(Angular Second Moment) 2. **Contrast** - 对比度 3. **Correlation** - 相关性 4. **Variance** - 方差 5. **Homogeneity** - 同质性 6. **SumAverage** - 和平均 7. **SumVar** - 和方差 8. **SumEntropy** - 和熵 9. **Entropy** - 熵 10. **DiffVar** - 差方差 11. **DiffEntropy** - 差熵 12. **Dissimilarity** - 不相似性 13. **Mean** - 均值 14. **ClusterShade** - 聚类阴影 15. **ClusterProm** - 聚类突出度 16. **MaxProb** - 最大概率 17. **MinProb** - 最小概率 18. **Strength** - 强度 19. **MassX** - X 方向质心 20. **MassY** - Y 方向质心 ## 技术栈 - **编程语言**: C++(Windows 平台) - **UI 框架**: 自定义 Windows API 封装类 - **数据库**: Microsoft Access(通过 ADO 连接) - **图像格式**: BMP(24 位位图) - **机器学习**: LibSVM - **开发环境**: Visual Studio ## 使用方法 ### 单图像处理模式 1. 启动应用程序,关闭欢迎窗口 2. 点击"浏览"按钮选择 BMP 图像文件 3. 图像将显示在窗口中(可选择拉伸显示) 4. 设置距离参数 d(默认值可用) 5. 点击"计算 GLCM 特征"按钮 6. 查看提取的 20 种特征值 ### 批处理模式 1. 进入批处理界面 2. 选择包含图像的目录 3. 系统自动处理目录中的所有 BMP 图像 4. 提取的特征自动存储到数据库 5. 支持正样本/负样本分类标记 ### 分类训练 1. 从数据库导出特征数据为 SVM 格式 2. 使用 LibSVM 训练分类器 3. 保存训练结果和分类模型 ## 工作流程 ``` 启动应用 → 欢迎窗口 → 主界面 ↓ ┌──────────┴──────────┐ ↓ ↓ 单图像模式 批处理模式 ↓ ↓ 选择 BMP 文件 选择图像目录 ↓ ↓ 计算 GLCM 特征 批量提取特征 ↓ ↓ 显示特征结果 存储到数据库 ↓ 导出 SVM 训练数据 ↓ LibSVM 分类训练 ↓ 保存分类结果 ``` ## 核心算法 ### GLCM(灰度共生矩阵) GLCM 是一种用于纹理分析的统计方法,通过计算图像中特定空间关系的像素对出现的频率来描述纹理特征。 **基本原理**: - 统计图像中距离为 d、方向为 θ 的像素对的灰度共生频率 - 从共生矩阵中提取多种统计特征 - 这些特征可以描述图像的纹理粗糙度、对比度、方向性等属性 **应用场景**: - 医学图像分析 - 遥感图像分类 - 材料表面检测 - 本项目:细胞衍射图像分类 ### 特征构建流程 本项目采用系统化的特征工程方法,将原始细胞衍射图像转换为可用于机器学习的特征向量。 #### 1. 图像预处理 - **输入格式**:24 位 BMP 彩色图像 - **灰度转换**:将 RGB 图像转换为灰度图像 - **归一化**:将灰度值标准化到合适的范围 #### 2. GLCM 矩阵构建 - **距离参数 d**:定义像素对之间的空间距离(可配置) - **方向角度 θ**:通常考虑 0°, 45°, 90°, 135° 四个方向 - **灰度级量化**:将灰度值量化到合适的级别 - **共生矩阵计算**:统计满足空间关系的像素对频率 #### 3. 特征提取 从 GLCM 矩阵中提取 **20 维特征向量**,每个特征描述图像纹理的不同属性: **能量与均匀性特征**: - ASM(角二阶矩):衡量图像灰度分布的均匀程度 - Entropy(熵):衡量图像纹理的随机性和复杂度 - Homogeneity(同质性):衡量图像纹理的局部均匀性 **对比度与差异性特征**: - Contrast(对比度):衡量图像的清晰度和纹理深浅程度 - Dissimilarity(不相似性):衡量局部灰度差异 - DiffVar(差方差)、DiffEntropy(差熵):描述灰度差异的统计特性 **相关性与结构特征**: - Correlation(相关性):衡量像素间的线性相关程度 - Variance(方差):描述灰度分布的离散程度 - Mean(均值):描述整体灰度水平 **高阶统计特征**: - ClusterShade(聚类阴影):描述纹理的对称性 - ClusterProm(聚类突出度):描述纹理的非对称性和峰度 - SumAverage、SumVar、SumEntropy:基于和概率的统计特征 **概率与分布特征**: - MaxProb(最大概率):最常见的像素对组合 - MinProb(最小概率):最罕见的像素对组合 - Strength(强度):纹理的整体强度 - MassX、MassY:灰度分布的质心位置