RLL Computer Vision Code: HCVC::ArmourDetector类 参考

RLL Computer Vision

RLL Computer Vision Code  1.0
江苏科技大学HLL战队机器视觉代码

装甲板检测模块 更多...

#include <armour_detector.h>

类 HCVC::ArmourDetector 继承关系图:
HCVC::ArmourDetector 的协作图:

struct  OptimalArmourBlock
 最佳装甲板区域结构体 更多...
 
struct  Params
 装甲板判定参数 更多...
 

Public 成员函数

 ArmourDetector ()
 加载装甲板区域判定参数 更多...
 
bool detect (const Mat &srcImage)
 检测图像中是否存在装甲板区域 更多...
 
Rect2d getBestArmourBlock () const
 获取上一次图像中检测出的最佳装甲板区域 更多...
 
void drawBlocks (Mat srcImage, const vector< RotatedRect > &minRotatedRects, const Scalar &color) const
 在原图像上画出旋转矩形,便于调试 更多...
 
- Public 成员函数 继承自 HCVC::ImagePreprocessor
 ImagePreprocessor ()
 初始化 更多...
 
Mat preprocess (const Mat &srcImage)
 对读取到的图片预处理 更多...
 
void setThreshod (int channel, int minOrMax, int value)
 设置预处理图像阈值 更多...
 
int getThreshod (int channel, int minOrMax) const
 获取指定通道最大值或者最小值 更多...
 

Public 属性

struct HCVC::ArmourDetector::Params params
 

Private 成员函数

vector< vector< Point > > searchBlocks (Mat srcImage)
 搜寻图中所有独立的团块 更多...
 
void fillLampBlock (Mat &srcImage, vector< vector< Point > > &blocks, int row, int col)
 用广度优先搜索填充每一个连通块 更多...
 
vector< RotatedRect > calcBlocksInfo (const vector< vector< Point > > &blocks)
 计算每一个团块的信息,并进行初步的筛选即去除掉一些不符合条件的团块 更多...
 
vector< RotatedRect > extracArmourBlocks (const vector< RotatedRect > &minRotatedRects)
 进一步筛选,匹配团块即灯柱对,提取出最优目标 更多...
 
void markArmourBlocks (const Mat &srcImage, const Mat &dstImage, const vector< RotatedRect > &armourBlocks)
 对最后提取出的灯柱区域评分,选出最优区域 更多...
 
void cutEdgeOfRect (Point2f *points)
 减去旋转矩形的边角,使旋转矩形的左右两条边与竖直方向平行,成为平行四边形 更多...
 

Private 属性

vector< OptimalArmourBlockoptimalArmourBlocks
 

详细描述

装甲板检测模块

在图像预处理之后,检测图像确定装甲板区域,根据一定评价原则选出最佳目标

在文件 armour_detector.h40 行定义.

构造及析构函数说明

◆ ArmourDetector()

HCVC::ArmourDetector::ArmourDetector ( )

加载装甲板区域判定参数

在文件 armour_detector.cpp5 行定义.

成员函数说明

◆ calcBlocksInfo()

vector< RotatedRect > HCVC::ArmourDetector::calcBlocksInfo ( const vector< vector< Point > > &  blocks)
private

计算每一个团块的信息,并进行初步的筛选即去除掉一些不符合条件的团块

参数
[in]blocks团块点的集合
返回
包围团块的最小旋转矩形数组

在文件 armour_detector.cpp161 行定义.

◆ cutEdgeOfRect()

void HCVC::ArmourDetector::cutEdgeOfRect ( Point2f *  points)
private

减去旋转矩形的边角,使旋转矩形的左右两条边与竖直方向平行,成为平行四边形

参数
[in]points旋转矩形的四个角点
返回
null

在文件 armour_detector.cpp283 行定义.

◆ detect()

bool HCVC::ArmourDetector::detect ( const Mat &  srcImage)

检测图像中是否存在装甲板区域

对装甲板检测流程总体控制,并将检测出来的装甲板区域旋转矩形存储起来

参数
[in]srcImage待检测原图像,图像由摄像头直接传回,并未经过处理
返回
图像中是否存在装甲板区域。 返回true,表示检测到装甲板区域; 返回false,表示未检测到装甲板区域

在文件 armour_detector.cpp29 行定义.

◆ drawBlocks()

void HCVC::ArmourDetector::drawBlocks ( Mat  srcImage,
const vector< RotatedRect > &  minRotatedRects,
const Scalar &  color 
) const

在原图像上画出旋转矩形,便于调试

参数
[in]srcImage待检测原图像
[in]minRotatedRects需要画出的全部旋转矩形
[in]color线条颜色
返回
null

在文件 armour_detector.cpp74 行定义.

◆ extracArmourBlocks()

vector< RotatedRect > HCVC::ArmourDetector::extracArmourBlocks ( const vector< RotatedRect > &  minRotatedRects)
private

进一步筛选,匹配团块即灯柱对,提取出最优目标

参数
[in]minRotatedRects包围团块的最小旋转矩形数组
返回
包围灯柱对即装甲板区域的最小旋转矩形数组

在文件 armour_detector.cpp184 行定义.

◆ fillLampBlock()

void HCVC::ArmourDetector::fillLampBlock ( Mat &  srcImage,
vector< vector< Point > > &  blocks,
int  row,
int  col 
)
private

用广度优先搜索填充每一个连通块

参数
[in]srcImage待检测原图像
[out]blocks所有连通块的点集合,初始为空
[in]row连通块第一个点的纵坐标
[in]col连通块第一个点的横坐标
返回
null

在文件 armour_detector.cpp92 行定义.

◆ getBestArmourBlock()

Rect2d HCVC::ArmourDetector::getBestArmourBlock ( ) const

获取上一次图像中检测出的最佳装甲板区域

对装甲板检测流程总体控制,向外提供运行装甲板检测模块运行接口

返回
包围装甲板区域旋转矩形的矩形

在文件 armour_detector.cpp69 行定义.

◆ markArmourBlocks()

void HCVC::ArmourDetector::markArmourBlocks ( const Mat &  srcImage,
const Mat &  dstImage,
const vector< RotatedRect > &  armourBlocks 
)
private

对最后提取出的灯柱区域评分,选出最优区域

参数
[in]srcImage待检测原图像
[in]dstImage对原图像进行图像预处理后的图像
[in]armourBlocks包围装甲板区域的最小旋转矩形数组
返回
null

在文件 armour_detector.cpp237 行定义.

◆ searchBlocks()

vector< vector< Point > > HCVC::ArmourDetector::searchBlocks ( Mat  srcImage)
private

搜寻图中所有独立的团块

参数
[in]srcImage待检测原图像
返回
所有连通块的点集合

在文件 armour_detector.cpp120 行定义.

类成员变量说明

◆ optimalArmourBlocks

vector<OptimalArmourBlock> HCVC::ArmourDetector::optimalArmourBlocks
private

在文件 armour_detector.h115 行定义.

◆ params

struct HCVC::ArmourDetector::Params HCVC::ArmourDetector::params

该类的文档由以下文件生成:
制作者   doxygen 1.8.13