Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

机器视觉图像处理学习平台

基于PyQt5和OpenCV的机器视觉图像处理学习平台,用于学习和实践基础图像处理算法。

功能特性

实验一:基础图像处理

  1. 摄像头调用 - 视频打开、暂停、关闭及单帧获取
  2. 图像格式转换 - RGB转灰度、RGB转HSV(手动实现算法)
  3. 图像读写测试 - 像素RGB值查看/修改、绘制简单图形
  4. 图片融合 - 透明度融合
  5. 颜色阈值抠图 - 基于颜色范围的掩码融合(BGR/HSV颜色空间)
  6. 图像校正 - 透视变换校正值斜图像(4点校正)
  7. 布匹裁剪分割线识别 - 基于颜色差异检测最佳裁剪位置
  8. 查看算法 - 每个任务均配有算法原理弹窗,方便学习

实验二:图像增强

  1. 直接灰度变换 - 可自定义分段线性变换
  2. 图像直方图计算及均衡化 - 手动实现直方图均衡化算法
  3. 图像中值滤波 - 3×3、5×5、7×7核大小
  4. 低通滤波 - 添加高斯噪声、椒盐噪声并滤波
  5. 目标寻找 - 圆形区域检测并标注

技术栈

  • 开发语言: Python 3.8+
  • GUI框架: PyQt5
  • 图像处理库: OpenCV
  • 辅助库: NumPy, Matplotlib

安装说明

1. 安装Python依赖

pip install -r requirements.txt

2. 运行程序

python main.py

项目结构

CVsystem/
├── main.py                  # 程序入口
├── requirements.txt         # 依赖包列表
├── ui/                      # UI模块
│   ├── __init__.py
│   ├── main_window.py       # 主窗口
│   ├── experiment1.py       # 实验一窗口
│   ├── experiment2.py       # 实验二窗口
│   └── styles.py            # 统一样式
├── core/                    # 核心处理模块
│   ├── __init__.py
│   ├── image_processor.py   # 图像处理核心算法
│   └── camera.py            # 摄像头处理
└── utils/                   # 工具模块
    ├── __init__.py
    └── helpers.py           # 辅助函数

使用说明

基本操作流程

  1. 启动程序后,从顶部菜单选择 实验(实验一或实验二)
  2. 选择实验后,再选择具体的 任务
  3. 系统会打开对应的实验窗口,左侧显示该任务的功能按钮
  4. 根据任务需要加载图像或打开摄像头
  5. 调整左侧参数并点击相应按钮预览效果
  6. 使用 导出结果 保存处理后的图像
  7. 点击 查看算法 按钮学习该任务的算法原理

界面布局

  • 顶部工具栏: 实验选择、任务选择
  • 左侧控制面板: 当前任务的功能参数调整区(宽度300px)
  • 右侧图像区域:
    • 上方显示原始图像
    • 下方显示处理后图像

特色功能

图像校正(4点透视变换)

  1. 加载值斜的图像(如拍摄角度不正的文档、票据)
  2. 按顺序点击图像上值斜矩形的4个角点(左上、右上、右下、左下)
  3. 系统自动计算透视变换矩阵并将图像摆正

布匹裁剪分割线识别

  1. 加载布匹图片(特别适合有褥皱或拼接的布料)
  2. 点击“识别分割线”按钮
  3. 系统基于颜色差异分析,自动检测并标记:
    • 红色粗线:主分割线(推荐裁剪位置)
    • 黄色细线:辅助参考线(颜色变化点)

颜色阈值抠图

  1. 加载前景图片和背景图片
  2. 选择颜色空间(BGR或HSV)
  3. 调整颜色阈值范围
  4. 点击“生成掩码”预览选中区域
  5. 点击“应用抠图融合”完成抠图

核心算法说明

本项目的核心图像处理算法均基于原理手动实现,不直接使用OpenCV的内置转换函数:

  • RGB转灰度: 使用加权平均公式 Gray = 0.299*R + 0.587*G + 0.114*B
  • RGB转HSV: 实现完整的HSV颜色空间转换算法
  • 直方图均衡化: 手动计算累积分布函数(CDF)并映射
  • 中值滤波: 逐像素窗口中值计算
  • 分段线性变换: 基于用户定义的控制点进行灰度映射
  • 透视变换: 使用cv2.getPerspectiveTransform计算变换矩阵,将4个值斜点映射为矩形
  • 布匹分割线检测: 基于灰度梯度分析,检测颜色突变区域

算法学习功能

每个任务都配备了 "查看算法"按钮,点击后弹窗显示:

  • 算法原理和数学公式
  • 实现步骤详细说明
  • 核心代码片段
  • 应用场景介绍

支持查看算法的任务:

  • 摄像头调用(OpenCV VideoCapture + PyQt5线程)
  • RGB转Gray(加权平均算法)
  • RGB转HSV(颜色空间转换)
  • 图像读写(像素操作、图形绘制)
  • 图像融合(Alpha混合)
  • 颜色阈值抠图(掩码融合)
  • 图像校正(透视变换)
  • 布匹裁剪分割(梯度检测)

注意事项

  1. 首次运行前请确保已安装所有依赖包
  2. 摄像头功能需要系统有可用的摄像头设备
  3. 中值滤波在大核和大图像时可能较慢,请耐心等待
  4. 所有窗口保持统一的GitHub浅色主题风格
  5. 图像显示区域固定大小(1000×380px),过大的图像会自动缩放
  6. 图像校正功能:需要按顺序点击4个角点(左上、右上、右下、左下),点击错误请使用“重置点”按钮
  7. 颜色阈值抠图:建议使用HSV颜色空间处理绿幕等特定颜色,BGR适合粗略调整
  8. 布匹分割线检测:算法会自动识别颜色变化最显著的区域,黄色线仅供参考

开发环境

  • Windows 10/11
  • Python 3.8+
  • PyQt5 5.15+
  • OpenCV 4.8+

许可证

本项目仅用于教学和学习目的。

About

机器视觉实验综合平台

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages