RLL Computer Vision Code: code/main_control.cpp 源文件

RLL Computer Vision

RLL Computer Vision Code  1.0
江苏科技大学HLL战队机器视觉代码
main_control.cpp
浏览该文件的文档.
1 #include "main_control.h"
2 
3 namespace HCVC
4 {
6 {
8 }
9 
10 bool MainControl::readSrcFile(const string &path)
11 {
12  srcFilePath = path;
13  srcFile.open(srcFilePath);
14 
15  return srcFile.isOpened();
16 }
17 
18 void MainControl::run(const string &path)
19 {
20  //读取源文件
21  if(!readSrcFile(path))
22  {
23  //异常处理,防止读取失败
24  throw string("Can not read file from ") + path;
25  }
26 
27  //创建原图像显示窗口
28  namedWindow(srcFilePath, WINDOW_FULLSCREEN);
29 
30  //添加滑动控制条
32 
33  //视频图像缓存区域
34  Mat frame;
35  while(true)
36  {
37  //添加运行时间统计
39  //添加滑动控制条跟随视频进度功能(这个功能极其耗时间,最好不要使用)
40  //Tool::setTrackBarFollow(srcFilePath, srcFile);
41  //添加键盘控制
43 
44  //读取一帧图像
45  srcFile >> frame;
46  //视频播放完毕跳出程序
47  if(frame.empty())
48  {
49  break;
50  }
51 
52  Mat resizeFrame(Size(1280, 720), CV_8UC1);
53 
54  //重调至合适的大小,减小运算量
55  resize(frame, resizeFrame, Size(1280, 720));
56 
57  //检测图片中的灯柱位置
58  if(status == DETECTING && armourDetector.detect(resizeFrame))
59  {
60  Rect2d armourBlock = armourDetector.getBestArmourBlock();
61  armourTracker.init(resizeFrame, armourBlock);
62  status = TRACKING;
63  }
64 
65  // 追踪装甲板区域
66  if(status == TRACKING && !armourTracker.track(resizeFrame))
67  {
68  status = DETECTING;
69  }
70 
71  //显示原图像(重调大小后)
72  imshow(srcFilePath, resizeFrame);
73  }
74 
75  destroyAllWindows();
76 }
77 }
78 
void run(const string &path)
运行整体系统并显示运行结果
MainControl()
初始化
Definition: main_control.cpp:5
static void addTrackBar(const string &windowName, VideoCapture &file)
添加滑动控制条
Definition: tool.cpp:6
string srcFilePath
读取文件路径
Definition: main_control.h:99
bool readSrcFile(const string &path)
设置源文件读取路径
bool detect(const Mat &srcImage)
检测图像中是否存在装甲板区域
ArmourTracker armourTracker
运动追踪器,对经过图像检测后找到的灯柱区域跟踪
Definition: main_control.h:85
static void addKeyboardControl(VideoCapture &srcFile, const int &delay=1)
添加键盘按键控制
Definition: tool.cpp:23
HLL Computer Vision Code namepace.
VideoCapture srcFile
存储读取的文件数据
Definition: main_control.h:102
void init(const Mat &srcImage, Rect2d armourBlock)
创建图像追踪器并设定参数
int status
当前装甲板检测程序的状态
Definition: main_control.h:96
bool track(Mat srcImage)
追踪目标区域
Rect2d getBestArmourBlock() const
获取上一次图像中检测出的最佳装甲板区域
static void getTimeCount(const int &id)
添加运行时间统计
Definition: tool.cpp:83
ArmourDetector armourDetector
图像检测器,处理并分析图像找出装甲的初始位置
Definition: main_control.h:82
制作者   doxygen 1.8.13