# IPR7 **Repository Path**: bcqcbh/ipr7 ## Basic Information - **Project Name**: IPR7 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-14 - **Last Updated**: 2025-11-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 砂岩图像分类与分割预测工具 本工具基于随机森林算法,实现砂岩图像的自动分区分割:通过标注好的砂岩图像训练分类器,再用训练好的模型对新砂岩图像进行分区预测,并可视化对比预测结果与真实分区。 ## 目录结构 plaintext ipr7/ ├─ create_clf.py # 训练分类器并保存模型 ├─ segment.py # 加载模型并预测分割 ├─ clf.pkl # 训练后生成的模型文件(自动生成) ├─ README.md # 使用说明文档 └─ 图片文件夹/ # 存放砂岩图像(可自定义名称) ├─ Sandstone_1.tif # 训练用原始砂岩图 ├─ Sandstone_1_segment.tif # 训练用标注分区图 ├─ Sandstone_2.tif # 预测用原始砂岩图 └─ Sandstone_2_segment.tif # 预测用真实分区图(用于准确率评估) ## 环境依赖 运行前需安装以下 Python 库,支持 Python 3.7+: bash ## 安装核心依赖 pip3 install imagecodecs scikit-image numpy scipy matplotlib scikit-learn pillow imagecodecs:解码 LZW 压缩的 TIFF 图像 scikit-image:图像读取与预处理 scikit-learn:随机森林分类器与模型评估 numpy:数组运算 matplotlib:结果可视化 ## 快速使用 1. 准备数据 将砂岩图像按上述目录结构存放 若自定义图片文件夹名称(非 "图片文件夹"),需修改两个脚本中的 image_folder 变量(例如改为 "sandstone_data") 确保图片文件名为:Sandstone_1.tif、Sandstone_1_segment.tif、Sandstone_2.tif、Sandstone_2_segment.tif(Linux 系统大小写敏感) 2. 训练分类器 运行训练脚本,从标注数据中学习特征并保存模型: bash cd /home/yuyuyu/ipr7 # 进入项目目录 python3 create_clf.py ## 脚本功能: 读取训练用图像和标注分区图 自动处理多通道转单通道、尺寸统一(裁剪到最小匹配尺寸) 划分训练集 / 测试集(8:2),训练随机森林分类器 输出模型准确率,保存模型为 clf.pkl # 成功运行示例输出: plaintext 正在读取图片:图片文件夹/Sandstone_1.tif 原始图像形状:(1008, 1012)(格式:高×宽×通道数) 正在读取分区图:图片文件夹/Sandstone_1_segment.tif 分区图原始形状:(1008, 1012, 3) 分区图取第一通道后形状:(1008, 1012) 特征向量形状:(1019904, 1)(样本数 × 特征数) 标签向量形状:(1019904,)(样本数) 开始训练随机森林分类器... 模型训练完成!测试集准确率:0.925 模型已保存为 clf.pkl(脚本同级目录) ## 3. 预测分割与可视化 运行预测脚本,加载模型对新图像进行分区预测: bash python3 segment.py # 脚本功能: 读取预测用图像和真实分区图 沿用训练时的预处理逻辑(通道统一、尺寸匹配) 加载 clf.pkl 模型,对每个像素进行分类预测 计算预测准确率,可视化展示「原始图→真实分区图→预测分区图」 成功运行后会自动弹出可视化窗口,同时输出: plaintext 正在读取预测用原始图:图片文件夹/Sandstone_2.tif 原始图形状:(1008, 1012)(格式:高×宽×通道数) 正在读取真实分区图:图片文件夹/Sandstone_2_segment.tif 真实分区图形状:(1008, 1012, 3) 真实分区图取第一通道后形状:(1008, 1012) 模型加载成功! 预测特征向量形状:(1019904, 1) 正在进行分区预测... 预测准确率:0.918 # 关键说明 1. 图像预处理逻辑 通道处理:多通道图像(如 RGB)自动转为单通道(原始图灰度化,分区图取第一通道) 尺寸匹配:若原始图与分区图尺寸不一致,自动裁剪到两者的最小尺寸(避免拉伸失真) 特征提取:以像素灰度值作为基础特征(可扩展纹理、边缘等高级特征) ## 个人信息 - 学号: 202352320105 - 年级: 2023 - 专业: 智能科学与技术 - 班级: 一 班