Files
Convention-Python/Convention/Runtime/Visual/README.md
2025-07-21 14:47:31 +08:00

5.6 KiB
Raw Blame History

Visual 模块

Visual模块提供了数据可视化和图像处理相关的功能包括数据图表、图像处理、词云等。

目录结构

  • Core.py: 核心数据可视化功能
  • OpenCV.py: OpenCV图像处理功能
  • WordCloud.py: 词云生成功能
  • Manim.py: 数学动画功能

功能特性

1. 数据可视化 (Core.py)

1.1 基础图表

  • 折线图
  • 柱状图
  • 散点图
  • 直方图
  • 饼图
  • 箱线图
  • 热力图
  • 分类数据图
  • 联合图

1.2 数据处理

  • 缺失值处理
  • 重复值处理
  • 数据标准化
  • 数据归一化

2. 图像处理 (OpenCV.py)

2.1 图像操作

  • 图像加载
    • 支持多种格式jpg, png, bmp等
    • 支持从文件路径或URL加载
    • 支持从内存缓冲区加载
  • 图像保存
    • 支持多种格式输出
    • 支持质量参数设置
    • 支持压缩选项
  • 图像显示
    • 支持窗口标题设置
    • 支持窗口大小调整
    • 支持键盘事件处理
  • 图像转换
    • RGB转灰度
    • RGB转HSV
    • RGB转LAB
    • 支持自定义转换矩阵
  • 图像缩放
    • 支持多种插值方法
    • 支持保持宽高比
    • 支持指定目标尺寸
  • 图像旋转
    • 支持任意角度旋转
    • 支持旋转中心点设置
    • 支持旋转后尺寸调整
  • 图像翻转
    • 水平翻转
    • 垂直翻转
    • 对角线翻转
  • 图像合并
    • 支持多图像拼接
    • 支持透明度混合
    • 支持蒙版处理

2.2 ImageObject类详解

ImageObject类提供了完整的图像处理功能

from Convention.Visual import OpenCV

# 创建图像对象
image = OpenCV.ImageObject("input.jpg")

# 基本属性
width = image.width          # 图像宽度
height = image.height        # 图像高度
channels = image.channels    # 通道数
dtype = image.dtype         # 数据类型

# 图像处理
image.resize_image(800, 600)                    # 调整大小
image.convert_to_grayscale()                    # 转换为灰度图
image.filter_gaussian((5, 5), 1.5, 1.5)         # 高斯滤波
image.rotate_image(45)                          # 旋转45度
image.flip_image(horizontal=True)               # 水平翻转

# 图像增强
image.adjust_brightness(1.2)                    # 调整亮度
image.adjust_contrast(1.5)                      # 调整对比度
image.adjust_saturation(0.8)                    # 调整饱和度
image.equalize_histogram()                      # 直方图均衡化

# 边缘检测
image.detect_edges(threshold1=100, threshold2=200)  # Canny边缘检测
image.detect_contours()                          # 轮廓检测

# 特征提取
keypoints = image.detect_keypoints()            # 关键点检测
descriptors = image.compute_descriptors()       # 描述子计算

# 图像保存
image.save_image("output.jpg", quality=95)      # 保存图像
image.save_image("output.png", compression=9)   # 保存PNG

# 图像显示
image.show_image("预览")                        # 显示图像
image.wait_key(0)                               # 等待按键

# 图像信息
print(image.get_info())                         # 获取图像信息
print(image.get_histogram())                    # 获取直方图

2.3 图像增强

  • 边缘检测
  • 滤波处理
  • 阈值处理
  • 形态学操作
  • 轮廓检测
  • 特征匹配

2.4 视频处理

  • 视频读取
  • 视频写入
  • 摄像头控制
  • 帧处理

3. 词云生成 (WordCloud.py)

3.1 词云功能

  • 词云创建
  • 标题设置
  • 渲染输出
  • 样式定制

4. 数学动画 (Manim.py)

4.1 动画功能

  • 数学公式动画
  • 几何图形动画
  • 图表动画
  • 场景管理

使用示例

1. 数据可视化示例

from Convention.Visual import Core

# 创建数据可视化生成器
generator = Core.data_visual_generator("data.csv")

# 绘制折线图
generator.plot_line("x", "y", title="折线图示例")

# 绘制柱状图
generator.plot_bar("category", "value", title="柱状图示例")

# 绘制散点图
generator.plot_scatter("x", "y", title="散点图示例")

# 绘制饼图
generator.plot_pie("category", title="饼图示例")

2. 图像处理示例

from Convention.Visual import OpenCV

# 创建图像对象
image = OpenCV.ImageObject("input.jpg")

# 图像处理
image.resize_image(800, 600)
image.convert_to_grayscale()
image.filter_gaussian((5, 5), 1.5, 1.5)

# 保存图像
image.save_image("output.jpg")

3. 词云生成示例

from Convention.Visual import WordCloud

# 创建词云
wordcloud = WordCloud.make_word_cloud("词云", [
    ("Python", 100),
    ("Java", 80),
    ("C++", 70),
    ("JavaScript", 90),
])

# 设置标题
WordCloud.set_title(wordcloud, "编程语言词云")

# 渲染输出
WordCloud.render_to(wordcloud, "wordcloud.html")

4. 视频处理示例

from Convention.Visual import OpenCV

# 创建视频捕获对象
camera = OpenCV.light_cv_camera(0)

# 创建视频写入对象
writer = OpenCV.VideoWriterInstance(
    "output.avi",
    OpenCV.avi_with_Xvid_fourcc(),
    30.0,
    (640, 480)
)

# 录制视频
def stop_condition():
    return OpenCV.is_current_key('q')

camera.recording(stop_condition, writer)

依赖项

  • matplotlib: 数据可视化
  • seaborn: 高级数据可视化
  • opencv-python: 图像处理
  • pyecharts: 词云生成
  • manim: 数学动画

注意事项

  1. 使用图像处理时注意内存占用
  2. 视频处理时注意帧率设置
  3. 词云生成时注意数据量
  4. 动画制作时注意性能优化

性能优化

  1. 使用图像处理时注意批量处理
  2. 视频处理时使用合适的编码格式
  3. 词云生成时控制词数
  4. 动画制作时优化渲染设置

贡献指南

欢迎提交Issue和Pull Request来改进功能或添加新特性。