首页 > 编程语言 >使用Python常用库处理-可视化凯斯西储大学轴承数据集 完成轴承原始信号图、灰度图和灰度图像加噪声图

使用Python常用库处理-可视化凯斯西储大学轴承数据集 完成轴承原始信号图、灰度图和灰度图像加噪声图

时间:2024-11-26 21:58:59浏览次数:10  
标签:轴承 mat img Python fault 灰度 path data

在这里插入图片描述
凯斯西储大学轴承数据图 包括 原始信号图,灰度图 ,灰度图像加噪声图
处理和可视化凯斯西储大学轴承数据集,包括原始信号图、灰度图和灰度图像加噪声图。我们将使用Python和一些常用的库来完成这些任务。

1. 数据集准备

数据集概述
  • 数据集名称: 凯斯西储大学轴承数据集
  • 数据集来源: 凯斯西储大学
  • 数据集内容: 包括完好试验轴承数据、外圈故障轴承数据、内圈故障轴承数据和滚珠故障轴承数据。
  • 故障类型及程度:
    • 外圈故障轴承数据: 0.021, 0.014, 0.007
    • 内圈故障轴承数据: 0.021, 0.014, 0.007
    • 滚珠故障轴承数据: 0.021, 0.014, 0.007
数据集目录结构

假设数据集已经下载并解压到指定目录:

CWRU-Bearing-Dataset/
├── 0.021_outer_fault/
│   ├── 0.021_outer_fault.mat
│   └── ...
├── 0.014_outer_fault/
│   ├── 0.014_outer_fault.mat
│   └── ...
├── 0.007_outer_fault/
│   ├── 0.007_outer_fault.mat
│   └── ...
├── 0.021_inner_fault/
│   ├── 0.021_inner_fault.mat
│   └── ...
├── 0.014_inner_fault/
│   ├── 0.014_inner_fault.mat
│   └── ...
├── 0.007_inner_fault/
│   ├── 0.007_inner_fault.mat
│   └── ...
├── 0.021_ball_fault/
│   ├── 0.021_ball_fault.mat
│   └── ...
├── 0.014_ball_fault/
│   ├── 0.014_ball_fault.mat
│   └── ...
├── 0.007_ball_fault/
│   ├── 0.007_ball_fault.mat
│   └── ...
└── normal/
    ├── normal.mat
    └── ...

2. 导入库

首先,我们需要导入必要的库。

import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio
import os
import cv2
from skimage.util import random_noise

3. 读取数据

编写一个函数来读取MAT文件中的数据。

def load_bearing_data(file_path):
    mat = sio.loadmat(file_path)
    data = mat['X097_DE_time']  # 假设数据存储在'X097_DE_time'键下,根据实际情况调整
    return data

4. 绘制原始信号图

编写一个函数来绘制原始信号图。

def plot_signal(data, title):
    plt.figure(figsize=(12, 4))
    plt.plot(data)
    plt.title(title)
    plt.xlabel('Sample Index')
    plt.ylabel('Amplitude')
    plt.show()

5. 将信号转换为灰度图

编写一个函数将信号转换为灰度图。

def signal_to_grayscale(data, img_size=(64, 64)):
    # 将信号归一化到0-255
    data = (data - np.min(data)) / (np.max(data) - np.min(data)) * 255
    # 将信号重塑为灰度图
    img = np.reshape(data, (img_size[0], img_size[1]))
    return img.astype(np.uint8)

6. 添加噪声

编写一个函数向灰度图添加噪声。

def add_noise_to_image(image, mode='gaussian', var=0.01):
    noisy_image = random_noise(image, mode=mode, var=var)
    noisy_image = (255 * noisy_image).astype(np.uint8)
    return noisy_image

7. 主程序

编写主程序来读取数据、绘制原始信号图、生成灰度图和带噪声的灰度图,并保存这些图像。

def main():
    # 数据集路径
    dataset_path = 'CWRU-Bearing-Dataset'
    
    # 故障类型及程度
    fault_types = {
        'outer': [0.021, 0.014, 0.007],
        'inner': [0.021, 0.014, 0.007],
        'ball': [0.021, 0.014, 0.007]
    }
    
    # 图像尺寸
    img_size = (64, 64)
    
    # 创建输出目录
    output_path = 'output_images'
    os.makedirs(output_path, exist_ok=True)
    
    # 处理正常数据
    normal_data = load_bearing_data(os.path.join(dataset_path, 'normal', 'normal.mat'))
    plot_signal(normal_data, 'Normal Bearing Signal')
    normal_img = signal_to_grayscale(normal_data, img_size)
    noisy_normal_img = add_noise_to_image(normal_img)
    
    plt.imsave(os.path.join(output_path, 'normal_grayscale.png'), normal_img, cmap='gray')
    plt.imsave(os.path.join(output_path, 'noisy_normal_grayscale.png'), noisy_normal_img, cmap='gray')
    
    # 处理故障数据
    for fault_type, severities in fault_types.items():
        for severity in severities:
            folder_name = f'{severity}_{fault_type}_fault'
            file_path = os.path.join(dataset_path, folder_name, f'{severity}_{fault_type}_fault.mat')
            data = load_bearing_data(file_path)
            plot_signal(data, f'{fault_type.capitalize()} Fault ({severity}) Signal')
            
            img = signal_to_grayscale(data, img_size)
            noisy_img = add_noise_to_image(img)
            
            plt.imsave(os.path.join(output_path, f'{folder_name}_grayscale.png'), img, cmap='gray')
            plt.imsave(os.path.join(output_path, f'noisy_{folder_name}_grayscale.png'), noisy_img, cmap='gray')

if __name__ == "__main__":
    main()

8. 运行脚本

确保你的数据集路径和文件名正确无误后,运行脚本:

python main.py

9. 结果

运行脚本后,你将在output_images目录中找到以下文件:

  • 原始信号图
  • 灰度图
  • 带噪声的灰度图

10. 注意事项

  1. 数据文件路径:确保数据文件路径正确,特别是MAT文件的键名。
  2. 图像尺寸img_size可以根据实际需求调整。
  3. 噪声类型和强度add_noise_to_image函数中的噪声类型和强度可以根据实际需求调整。

11. 总结

通过以上步骤,你可以处理和可视化凯斯西储大学轴承数据集,生成原始信号图、灰度图和带噪声的灰度图。

标签:轴承,mat,img,Python,fault,灰度,path,data
From: https://blog.csdn.net/2401_88441190/article/details/143959551

相关文章

  • Python基础 day2 变量 数据类型
    一:变量1.什么是变量    计算机中的变量,按字面理解同样也是一个会变的变量,因为它可能表示一个字符串,一个数字,或者是一个小数。    变量就相当与数据的容器-->作用是用来存数据,因为计算机的本质就是和各种数据打交道。2.变量的组成1.数据类型(type)2.内......
  • Python基础学习-11函数参数
    1、"值传递”和“引用传递”1)不可变的参数通过“值传递”。比如整数、字符串等2)可变的参数通过“引用参数”。比如列表、字典。3)避免可变参数的修改4)内存模型简介2、函数参数类型1)deffunc()#无参数函数2)deffunc(value1,value2)#有参数函数;位置参数3)deffunc(......
  • python day01
    python学习day01python代码>解释器>电脑显示​基础内容字面量写在代码中固定的词语。相当于java中的常量概念66613.14“你好世界”print("Hello世界")注释作用:解释说明以“#”号开头,不执行执行程序,起辅助作用,规范“#”后面要用空格#我是单行注释print("H......
  • 《Python 股票交易分析:开启智能投资新时代》(一)
    一、Python在股票交易分析中的重要性Python以其强大的数据分析库和简洁的语法,成为股票交易分析的热门工具。它能够处理大量数据、进行复杂的计算和可视化,为投资者提供更准确的决策依据。股票分析是金融领域中至关重要的任务,而Python作为一种强大的编程语言,在股票分析中发......
  • 使用Python常用库处理-可视化凯斯西储大学轴承数据集 完成轴承原始信号图、灰度图和灰
    凯斯西储大学轴承数据图包括原始信号图,灰度图,灰度图像加噪声图处理和可视化凯斯西储大学轴承数据集,包括原始信号图、灰度图和灰度图像加噪声图。我们将使用Python和一些常用的库来完成这些任务。1.数据集准备数据集概述数据集名称:凯斯西储大学轴承数据集数据集来......
  • Python分析数据挖掘过程
    数据挖掘作为现代科技的一项核心技术,已经深刻影响了各行各业。其目标是从大量数据中提取有用的信息和知识,为决策支持提供依据。在快速增长的数据量面前,如何高效地处理、分析并挖掘数据,成为许多企业和科研人员必须面对的问题。掌握数据挖掘的概念与过程,不仅是学习编程的进阶......
  • Python分析时间序列特征
    时间序列分析是数据科学和统计学中的重要分支,广泛应用于金融市场预测、气象数据分析、经济趋势分析等领域。时间序列的数据特点独特,不同于普通的数据类型。它是基于时间顺序的一系列数据点的集合,通过对数据点的变化模式进行分析,能帮助人们发现潜在的趋势、周期和规律。在学......
  • Python那些事儿 - 函数的参数详解
    第十回巅峰对决前言这一回我们将对函数的参数进行详细的讲解。函数的参数分为形参和实参,形参又分为:位置参数、默认参数(缺省参数)、位置不定长参数、关键字不定长参数实参又分为:位置参数、关键字参数接下来让我们一起走进函数的参数吧!......
  • Python基础--装饰器
    一、基础知识1.什么是Python装饰器装饰器(Decorator)是Python中的一种设计模式,允许你在不修改原函数代码的情况下,动态地添加或修改函数的行为。简单来说,装饰器本质上是一个函数,它接收一个函数作为参数,并返回一个新的函数。装饰器常用于以下几种场景:添加日志:记录函数调用的时间......
  • python拆分带plist的png图片
    参考:https://www.cnblogs.com/creator-star/p/13926602.html上面的参考的脚本只能拆分2代的.plist中metadata的format的值2现有plist版本为3,所以修改了下, 需要安装pillow库的#需要安装pillow库#pip3installpillowimportplistlibimportosimportsysfromPILimp......