Skip to content

get1024/AddNoise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

升噪工具

用来获取含有噪点的点云数据,用来对滤波等算法进行干扰测试。

图例展示

功能特性

🎯 核心功能

  • 椭圆点云生成:生成标准椭圆形状的点云数据
  • 噪点添加:为已有数据文件添加各种类型的噪点
  • 多种噪点分布:支持均匀分布、正态分布、聚类分布、环形分布
  • 3D支持:可生成和处理三维点云数据
  • 给自定义文件升噪:用户可以选择点云文件,进行个性化升噪处理

📊 可视化功能

  • 2D散点图:经典的二维数据可视化
  • 3D散点图:三维空间数据展示
  • 密度热图:数据分布密度可视化
  • 统计分析图:包含距离分布、角度分布、聚类分析等

🎨 界面特性

  • 实时预览:参数调整时实时更新预览图
  • 多标签页设计:基本设置、高级设置、可视化设置分类管理
  • 中文界面:完整的中文用户界面支持
  • 交互式参数调节:直观的参数输入和调整

系统要求

Python 版本

  • Python 3.6 或更高版本

依赖库

pip install numpy pandas matplotlib seaborn scipy scikit-learn tkinter

系统兼容性

  • Windows(推荐,已优化中文字体支持)
  • macOS
  • Linux

安装和运行

1. 克隆或下载文件

# 确保 AddNoise.py 文件在您的工作目录中

2. 安装依赖

pip install numpy pandas matplotlib seaborn scipy scikit-learn

3. 运行程序

python AddNoise.py

使用指南

基本操作

1. 生成椭圆点云

  1. 选择"生成椭圆点云"模式
  2. 设置基本参数:
    • 椭圆主线点数:椭圆轮廓上的点数量
    • 噪点数量:要生成的噪点数量
    • 半长轴 a:椭圆的半长轴长度
    • 半短轴 b:椭圆的半短轴长度
    • 噪点范围:噪点的分布范围(min, max)
  3. 点击"更新预览"查看效果
  4. 设置输出文件路径
  5. 点击"执行并保存"

2. 为已有文件添加噪点

  1. 选择"为已有文件追加噪点"模式
  2. 选择输入文件(支持空格分隔的文本文件)
  3. 设置噪点参数
  4. 设置输出文件路径
  5. 执行操作

高级设置

噪点分布类型

  • 均匀分布:在指定范围内均匀分布的噪点
  • 正态分布:符合正态分布的噪点
  • 聚类分布:形成多个聚类中心的噪点
  • 环形分布:围绕中心呈环形分布的噪点

3D模式

  • 启用3D模式可生成三维点云数据
  • 可设置Z轴噪点范围
  • 支持3D可视化

聚类参数

  • 聚类中心数:聚类分布模式下的聚类数量
  • 聚类标准差:控制聚类的紧密程度

可视化选项

可视化模式

  • 2D散点图:标准的二维散点图显示
  • 3D散点图:三维空间中的点云显示
  • 密度热图:包含散点图、密度热图、X/Y轴分布的综合视图
  • 统计分析:距离分布、角度分布、聚类分析和统计摘要

颜色方案

  • 默认:经典的蓝红配色
  • Viridis:科学可视化常用配色
  • Plasma:高对比度配色
  • Cool:冷色调配色
  • Seaborn:统计图表优化配色

显示参数

  • 点大小:控制散点的显示大小
  • 透明度:控制点的透明程度(0-1)

输出格式

文件格式

  • 输出文件为空格分隔的文本文件
  • 2D数据:每行包含 x y 坐标
  • 3D数据:每行包含 x y z 坐标
  • 无标题行,纯数据格式

数据结构

# 2D格式示例
1.234 2.567
-0.123 1.890
...

# 3D格式示例
1.234 2.567 0.123
-0.123 1.890 -0.456
...

统计分析功能

实时统计

程序提供详细的统计分析,包括:

基础统计

  • 数据点数量统计
  • 坐标范围和均值
  • 标准差计算

高级分析

  • 正态性检验:Shapiro-Wilk检验
  • 相关性分析:坐标间的相关系数
  • 聚类分析:DBSCAN聚类算法
  • 分布分析:距离和角度分布

数据质量评估

  • 椭圆点密度
  • 噪点密度
  • 信噪比计算

技术特性

中文字体支持

  • 自动检测系统可用的中文字体
  • 支持 Windows、macOS、Linux 系统
  • 优雅降级到默认字体

性能优化

  • 延迟更新机制避免频繁刷新
  • 大数据集的采样处理
  • 内存友好的数据处理

错误处理

  • 完善的异常处理机制
  • 用户友好的错误提示
  • 参数验证和边界检查
  • 依赖库缺失时的优雅降级

常见问题

Q: 中文显示为方框怎么办?

A: 程序会自动尝试设置中文字体,如果仍显示为方框,请确保系统安装了中文字体。

Q: 如何处理大数据集?

A: 程序对大数据集进行了优化,但建议单次处理的点数不超过100万个。

Q: 支持哪些输入文件格式?

A: 支持空格、制表符分隔的文本文件,每行包含坐标数据。

Q: 3D模式下如何控制Z轴范围?

A: 在高级设置中调整"Z轴噪点范围"参数。

Q: 遇到 "jedi.settings" 错误怎么办?

A: 这是依赖库版本兼容性问题。解决方案:

# 方案1:降级 jedi 版本
pip install "jedi<0.18.0"

# 方案2:如果仍有问题,卸载有问题的包
pip uninstall -y seaborn ipywidgets ipython
# 程序会自动使用备用方案,功能不受影响

Q: 程序启动时显示警告信息?

A: 以下警告是正常的,不影响程序功能:

  • "⚠ Seaborn 不可用,将使用默认颜色方案"
  • "MatplotlibDeprecationWarning" 相关警告
  • 字体设置相关警告

故障排除

依赖库问题

如果遇到导入错误,程序设计了优雅降级机制:

  1. Seaborn 不可用:程序会使用默认颜色方案
  2. SciPy 不可用:统计分析功能受限,但基本功能正常
  3. Scikit-learn 不可用:聚类分析不可用,其他功能正常

最小依赖运行

程序的核心功能只需要以下库:

pip install numpy pandas matplotlib tkinter

完整功能依赖

如果需要所有高级功能,请安装:

pip install numpy pandas matplotlib scipy scikit-learn
# 注意:暂时跳过 seaborn 以避免兼容性问题

更新日志

v1.0.0

  • 初始版本发布
  • 支持基本椭圆生成和噪点添加
  • 多种可视化模式
  • 完整的统计分析功能
  • 中文界面支持

许可证

本项目遵循 MIT 许可证。

贡献

欢迎提交问题报告和功能建议!


噪点生成工具 - 让点云数据生成更简单、更直观

About

A python toolkit for quickly adding noise. 点云噪点生成器;升噪器。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages