基于C++的三阶魔方还原程序
[TOC]
本项目为基于QT5和OpenCV3.41的图像识别魔方还原程序。
还原算法采用科先巴二阶段算法。
实现了输入打乱公式提供还原公式的功能,以及通过摄像头扫描识别魔方六面,获取魔方还原公式,且提供3D魔方图像动画演示。
以下展示用法
- 输入打乱公式,获取还原公式
- 主要Demo(文件夹)
|---Code
├── algorithm/
│ ├── Cube_Algorithm/ # 魔方还原算法
│ │ ├── CubieCube.h/cpp # 魔方数据结构
│ │ └── Solver.h/cpp # 还原算法
| | └── testMain.cpp # 测试
| |
├── demo/ # opencv 魔方图像识别demo
│ ├── ColorPickerDemo.cpp # 筛选六色HSV值
│ ├── getCubeInfos.cpp # 颜色识别轮廓勾勒demo
│ └── CubeFrameReco.cpp # 划定区域识别每面颜色
└──
- QT程序(项目)
CubeSolver/
├── Headers/
│ ├── buildcube.h # opengl 魔方3D图像窗口
| ├── camerathread.h # 开启摄像头,传递画面线程类
| ├── cubedetec.h # 监控摄像画面,识别魔方颜色窗口
│ ├── cubiecube.h # 魔方数据结构类
│ ├── mainwindow.h # 多功能窗口
│ ├── solver.h # 魔方还原算法
│ └── welcome.h # 程序首窗口
├── Sources/
│ ├── buildcube.cpp
| ├── camerathread.cpp
| ├── cubedetec.cpp
│ ├── cubiecube.cpp
│ ├── mian.cpp # 程序入口
│ ├── mainwindow.cpp
│ ├── solver.cpp
│ └── welcome.cpp
├── Forms/
│ ├── buildcube.ui
│ ├── cubedetec.ui
│ ├── mainwindow.ui
│ └── welcome.ui
├── Resources/
│ ├── /
│ ├── shapes.frag # opengl渲染文件
│ ├── shapes.vert
│ └── Resource/
│ └── cubeIcon.png # 图标
└── CubeSolver.pro
使用OpenCV识别魔方颜色(完成)
三阶魔方基础知识(未完成)
还原算法(未完成)
界面与识别魔方(未完成)
主要工作:获取三阶魔方六色HSV值,通过摄像头获取信息。
- 获取用于魔方颜色识别的HSV值demo:ColorPickerDemo.cpp。
- 颜色识别轮廓勾勒demo:getCubeInfos.cpp
- 划定魔方识别区域,获取魔方色块颜色:cubeFrameReco.cpp
工作内容:使用QT绘制界面,打开摄像头获取魔方六面颜色信息,传回主窗口
效果展示工作内容:实现还原算法;可输入打乱公式,获取还原公式
还原算法的demo:/Code/algorithm/Cube_Algorithm
- CubieCube.h/cpp:魔方数据结构与旋转方法
- Solver.h/Solver.cpp: 还原算法
- testMain.cpp: 测试代码
工作内容:充实QT界面,实现魔方3D图像展示构建
开始界面 识别结果 按照识别结果展示- 完成version1.0程序
- 实现QT窗口
- 输入打乱公式——获取还原公式
- 摄像头扫描魔方六面——获取还原公式
- opengl窗口展示3D魔方还原动画
- 添加注释,修改旋转bug
- 修复功能bug