# 砂岩 **Repository Path**: liuwenjing2/sandstone ## Basic Information - **Project Name**: 砂岩 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-25 - **Last Updated**: 2023-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Split sandstone cross-section - Split sandstone cross-section ![输入图片说明](1.png) ![输入图片说明](%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20231225194743.png) - 项目描述 - 这项目是一个图像分割示例,使用机器学习模型(已保存为clf.pkl文件)对沙岩图像进行分割。代码加载原始图像和相应的分割图像,通过添加均值滤波的额外特征,构建新的特征矩阵。然后,使用机器学习模型对原始图像进行分割预测,计算预测准确率,并通过 Matplotlib 在三个子图中展示原始图像、实际分割图和模型预测分割图,其中包括准确率信息。 - 功能 - 本项目实现了以下功能: - 加载机器学习模型: - 通过 pickle 模块加载预训练的机器学习模型(clf.pkl文件)。 - 图像读取: - 使用 OpenCV 读取原始图像和相应的分割图像。 - 特征工程: - 添加了额外的特征,即对原始图像进行均值滤波,得到 mean_filtered 特征。 - 特征合并: - 将原始图像和额外的特征合并为新的特征矩阵 features。 - 模型预测: - 使用加载的机器学习模型 clf 对新的特征矩阵进行预测,仅使用原始图像特征。 - 准确率计算: - 计算预测分割图和实际分割图的像素准确率。 - 图像展示: - 使用 Matplotlib 绘制三个子图,展示原始图像、实际分割图和机器学习模型的分割预测结果。 - 准确率信息显示: - 在第三个子图的标题中显示分割预测图的准确率信息。 - 这个项目的主要目标是利用机器学习模型进行图像分割,并通过可视化和准确率计算评估模型性能。 - 依赖 - 本项目依赖以下库: - numpy - sklearn - cv2 - os - imutils - pickle - matplotlib 使用 - 安装依赖库 - 注意 - 文件路径: - 确保提供的文件路径是正确的,包括机器学习模型文件 (clf.pkl)、原始图像文件和分割图像文件。 - 库依赖: - 确保已安装所需的库,可以通过运行 pip install opencv-python pickle numpy matplotlib 安装。 - 模型一致性: - 确保训练机器学习模型的代码与加载模型的代码是一致的,否则可能导致意外的结果。 - 图像大小一致性: - 确保原始图像和分割图像的大小相同,以避免形状不匹配的问题。 - 性能和资源: - 对于大型图像或模型,可能需要考虑计算资源的使用情况,以确保代码在可用内存范围内运行。 - 文件读取: - 检查图像文件是否存在并且可以正确读取,以避免文件路径错误或文件损坏的问题。 - Matplotlib 显示: - 在运行代码时,确保 Matplotlib 的图形窗口能够正常显示。在某些环境中,可能需要使用 plt.show(block=True) 以阻止窗口关闭。 - 准确率计算: - 理解准确率的计算方式,并确保它适用于特定的图像分割问题。 - 个人信息 - 学号: 202152320124 - 年级: 2021 - 专业: 智能科学与技术 - 班级: 1班