# StudyOpenCV **Repository Path**: doiob/study-open-cv ## Basic Information - **Project Name**: StudyOpenCV - **Description**: - 基于opencv 图像处理系统; - 使用pySide2+python开发; - 实现图形化+工作流方式的图像处理; - 可自定义算法节点,并导入到工作流中; - 支持国际化多语种; - 支持日志; - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-06-17 - **Last Updated**: 2026-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # StduyOpenCV - 图形化视觉处理系统 > **版本**: v5.5.0\ > **发布日期**: 2026-05-10\ > **语言**: Python 3.7+\ > **平台**: Windows / Linux / macOS *** ## 🎯 项目简介 **StduyOpenCV** 是一个基于 **OpenCV** 和 **NodeGraphQt** 构建的图形化视觉编程系统,提供类似**海康VM**、**基恩士CV-X**、**康耐视VisionPro** 的可视化编程体验。 ### ✨ 核心特点 | 特性 | 描述 | | ------------ | ------------------- | | 🎨 **节点式编程** | 拖拽节点、连线构建视觉工作流 | | 🧠 **AI集成** | YOLO目标检测、OCR识别、姿态估计 | | 📁 **工程管理** | 多工作流支持、单文件打包、全文索引 | | 🔌 **插件系统** | 热重载、安全沙箱、ZIP一键安装 | | 📊 **实时预览** | 图像缩放、滚动、拖拽平移 | | 🌐 **多语言** | 支持中文/英文界面切换 | | 📱 **完全离线** | 无需网络,本地化处理 | *** ## 🚀 快速开始 ### 1. 环境准备 ```bash # 进入项目目录 cd StduyOpenCV # 激活虚拟环境 .\.venv\Scripts\activate # Windows # source .venv/bin/activate # Linux/Mac # 安装依赖(如未安装) pip install -r src/python/requirements.txt ``` ### 2. 运行程序 ```bash python src/python/main.py ``` ### 3. 界面预览 程序启动后会显示主界面: ![image-20260511161629917](README.assets/ui_main.png) *** ## 🎮 操作演示 ### 示例1:基础图像处理工作流 **目标**:加载图像 → 灰度化 → Canny边缘检测 → 显示结果 1. **添加节点**: - 从左侧「图像源」标签拖拽 **图像加载** 节点 - 从左侧「图像分析」、「图像变换」标签拖拽 **灰度化** 和 **Canny算子** 节点 - 从左侧「图像源」标签拖拽 **图像显示** 节点 2. **连接节点**: ``` 图像加载 → 灰度化 → Canny边缘检测 → 图像显示 ``` ![image-20260512082241801](README.assets/demo_workflow.png) 3. **配置参数**: - 点击「图像加载」节点,在右侧属性面板设置图片路径 - 调整 Canny 检测的阈值参数(如 50-150) 4. **运行工作流**: - 点击工具栏「▶ 运行」按钮 - 双击「图像显示」节点查看处理结果 ![](README.assets/ui_preview.png) ### 示例2:YOLO目标检测工作流 **目标**:实时相机采集 → YOLO检测 → 结果显示 1. **添加节点**: - 拖拽 **相机采集** 节点 - 拖拽 **YOLO目标检测** 节点 - 拖拽 **图像显示** 节点 2. **连接节点**: ``` 相机采集 → YOLO目标检测 → 图像显示 ``` 3. **配置参数**: - 设置相机索引(通常为 0) - 选择YOLO模型:`yolov8n`(最快)或 `yolov8s`(平衡) - 设置置信度阈值:`0.5` 4. **运行工作流**: - 点击「▶ 运行」开始实时检测 - 双击图像显示节点查看标注结果 ### 示例3:批量图像处理 1. 创建工作流:`图像加载 → 高斯模糊 → 图像保存` 2. 选择多张输入图片 3. 点击「运行」批量处理 4. 结果自动保存到指定目录 *** ## 📦 节点库 ### 图像相机 (IO) | 节点 | 功能 | | ---- | ------- | | 图像加载 | 从文件加载图像 | | 相机采集 | 实时相机视频流 | | 图像保存 | 保存图像到文件 | | 视频录制 | 录制视频文件 | ### 预处理 (Processing) | 节点 | 功能 | | ------- | ---------- | | 灰度化 | RGB转灰度 | | 高斯模糊 | 高斯滤波降噪 | | 中值滤波 | 去除椒盐噪声 | | 双边滤波 | 保边去噪 | | Canny边缘 | 边缘检测 | | Sobel边缘 | 梯度边缘检测 | | 阈值分割 | 二值化处理 | | 自适应阈值 | 局部阈值二值化 | | 直方图均衡 | 对比度增强 | | 形态学操作 | 膨胀/腐蚀/开闭运算 | | 图像变换 | 缩放/旋转/翻转 | ### AI视觉 (AI Vision) | 节点 | 功能 | 资源等级 | | -------- | ------- | ------ | | YOLO目标检测 | 物体检测识别 | Light | | YOLO图像分类 | 图像分类 | Light | | YOLO实例分割 | 像素级分割 | Light | | YOLO姿态估计 | 人体关键点检测 | Light | | OCR识别 | 文字识别 | Light | | OCR表格识别 | 表格结构分析 | Medium | ### 测量分析 (Measurement) | 节点 | 功能 | | ---- | ------- | | 轮廓分析 | 轮廓提取与分析 | | 模板匹配 | 模板定位 | | 形状匹配 | 形状上下文匹配 | *** ## 🔧 快捷键 | 快捷键 | 功能 | | ---------- | ------ | | `Ctrl + N` | 新建工作流 | | `Ctrl + S` | 保存工程 | | `Ctrl + O` | 打开工程 | | `Ctrl + R` | 运行工作流 | | `Del` | 删除选中节点 | | `Ctrl + D` | 复制节点 | | `Space` | 画布平移模式 | | `+ / -` | 缩放画布 | | `0` | 重置缩放 | | `1` | 原始大小 | *** ## 📁 项目结构 ``` StduyOpenCV/ ├── src/python/ # Python源代码 │ ├── core/ # 核心引擎 │ │ ├── graph_engine.py # 图执行引擎 │ │ ├── project_manager.py # 工程管理器 │ │ └── ... │ ├── ui/ # 用户界面 │ │ ├── main_window.py # 主窗口 │ │ ├── image_preview.py # 图像预览 │ │ └── ... │ ├── plugins/ # 插件系统 │ │ ├── plugin_manager.py # 插件管理器 │ │ ├── sandbox.py # 安全沙箱 │ │ └── ... │ ├── plugin_packages/ # 插件包 │ │ ├── builtin/ # 内置节点 │ │ └── marketplace/ # 市场插件 │ ├── main.py # 程序入口 │ └── requirements.txt # 依赖清单 ├── docs/ # 文档 │ ├── RELEASE_NOTES_*.md # 版本说明 │ ├── PLUGIN_ARCHITECTURE.md # 插件架构 │ └── ... ├── .venv/ # 虚拟环境 └── README.md # 本文档 ``` *** ## 🛠️ 技术栈 | 组件 | 版本 | 用途 | | ----------- | ------ | ------ | | Python | 3.7+ | 编程语言 | | NodeGraphQt | latest | 节点图框架 | | PySide2 | 5.15+ | Qt图形界面 | | OpenCV | 4.5+ | 图像处理 | | NumPy | 1.19+ | 数值计算 | | Pillow | 8.0+ | 图像读写 | *** ## 📜 许可证与声明 ### 版权声明 © 2026 StduyOpenCV 开发团队 ### 使用许可 本项目仅供**学习和研究使用**,遵循以下条款: ✅ **允许**: - 学习和研究项目代码 - 修改和扩展功能 - 用于个人或教学项目 - 分享和传播(保留原作者信息) ❌ **禁止**: - 用于商业目的 - 声称是原创作品 - 删除或修改版权声明 ### 第三方库许可 本项目使用了以下开源库: | 库 | 许可证 | 来源 | | ----------- | ---------- | ------------------------------------------------- | | OpenCV | Apache 2.0 | [opencv.org](https://opencv.org/) | | NodeGraphQt | MIT | [GitHub](https://github.com/jchanvfx/NodeGraphQt) | | PySide2 | LGPL | [Qt](https://www.qt.io/) | | NumPy | BSD | [numpy.org](https://numpy.org/) | | Pillow | HPND | [python-pillow.org](https://python-pillow.org/) | ### 免责声明 > **免责声明**:本项目仅供学习和研究目的。作者不对因使用本软件造成的任何直接或间接损失承担责任。使用本软件即表示您同意本免责声明。 *** ## 🤝 贡献指南 欢迎贡献代码、报告问题或提出建议! ### 提交代码流程 1. Fork 本仓库 2. 创建特性分支:`git checkout -b feature/AmazingFeature` 3. 提交更改:`git commit -m 'Add some AmazingFeature'` 4. 推送到分支:`git push origin feature/AmazingFeature` 5. 开启 Pull Request ### 代码规范 - Python 遵循 PEP 8 规范 - 添加必要的文档字符串 - 保持代码整洁 - 确保测试通过 *** ## 📧 联系方式 如有问题或建议,请通过以下方式联系: - GitHub Issues: 提交问题到项目仓库 - 邮箱: *** ## 📊 项目统计 - **代码量**: \~15,000 行 Python - **节点数**: 30+ 内置节点 - **插件数**: 2+ AI插件(YOLO、OCR) - **支持平台**: Windows / Linux / macOS *** **享受图像处理的乐趣!** 🎨📷✨ *Last updated: 2026-05-11*