RMVL  1.0.0
RoboMaster Vision Library
Public 成员函数 | 静态 Public 成员函数 | 所有成员列表

装甲模块组合特征 更多...

#include <rmvl/combo/armor.h>

类 rm::Armor 继承关系图:
rm::Armor 的协作图:

Public 成员函数

 Armor ()=delete
 
 Armor (const Armor &)=delete
 
 Armor (Armor &&)=delete
 
 Armor (light_blob_ptr &, light_blob_ptr &, const GyroData &, int64, float, float, float, float, float, float, float, ArmorSizeType)
 
float getComboRatio ()
 获取组合特征宽高比 更多...
 
float getWidthRatio ()
 获取左右灯条宽度的比值 更多...
 
float getLengthRatio ()
 获取左右灯条长度的比值 更多...
 
float getCornerAngle ()
 获取左右灯条错位角 更多...
 
float getError ()
 获取匹配误差 更多...
 
ArmorSizeType getArmorType ()
 获取装甲板大小类型 更多...
 
void setType (RobotType stat)
 设置机器人类型 RobotType 更多...
 
void setPNP (const ResultPnP< float > &pnp)
 设置 PnP 信息 更多...
 
const cv::Vec2f & getPose () const
 获取装甲板姿态法向量 更多...
 
- Public 成员函数 继承自 rm::combo
virtual ~combo ()=0
 
float getHeight () const
 获取组合体高度 更多...
 
float getWidth () const
 获取组合体宽度 更多...
 
float getAngle () const
 获取组合体角度 更多...
 
cv::Point2f getCenter () const
 获取组合体中心点 更多...
 
const std::vector< cv::Point2f > & getCorners ()
 获取组合体角点 更多...
 
const ResultPnP< float > & getPNP () const
 获取组合体 PNP 数据 更多...
 
RMStatus getType () const
 获取组合体类型 更多...
 
int64 getTick () const
 获取捕获该组合体时的时间戳 更多...
 
cv::Point2f getRelativeAngle () const
 获取组合体的相对目标转角 更多...
 
const GyroDatagetGyroData () const
 获取组合体当前的陀螺仪数据 更多...
 
feature_ptr at (size_t idx) const
 获取指定特征 更多...
 
auto & data ()
 获取特征列表数据 更多...
 
size_t size () const
 获取特征列表大小 更多...
 
bool empty () const
 判断特征列表是否为空 更多...
 

静态 Public 成员函数

static std::shared_ptr< Armormake_combo (light_blob_ptr &p_left, light_blob_ptr &p_right, const GyroData &gyro_data, int64 tick, ArmorSizeType armor_size_type=ArmorSizeType::UNKNOWN)
 Armor 构造接口 更多...
 
static std::shared_ptr< Armorcast (combo_ptr p_combo)
 动态类型转换 更多...
 
static void loadSVM (const std::string &path)
 加载 SVM 装甲板大小分类的 *.xml 文件 更多...
 
static void gyroConvertToCamera (const cv::Matx33f &gyro_rmat, const cv::Vec3f &gyro_tvec, const GyroData &gyro_data, cv::Matx33f &cam_rmat, cv::Vec3f &cam_tvec)
 装甲板 PNP 信息从陀螺仪坐标系转化为相机坐标系 更多...
 
static void cameraConvertToGyro (const cv::Matx33f &cam_rmat, const cv::Vec3f &cam_tvec, const GyroData &gyro_data, cv::Matx33f &gyro_rmat, cv::Vec3f &gyro_tvec)
 装甲板 PNP 信息从相机坐标系转化为陀螺仪坐标系 更多...
 
static bool isContainBlob (light_blob_ptr blob, std::shared_ptr< Armor > armor)
 判断单个装甲板所在区域内是否包含指定的灯条 更多...
 
static cv::Mat getNumberROI (cv::Mat src, combo_ptr p_combo)
 根据图像中指定装甲板的信息,截取仅包含数字的 ROI 更多...
 

额外继承的成员函数

- Protected 属性 继承自 rm::combo
std::vector< feature_ptr_features
 特征列表 更多...
 
float _height = 0.f
 高度 更多...
 
float _width = 0.f
 宽度 更多...
 
float _angle = 0.f
 角度 更多...
 
RMStatus _type
 类型 更多...
 
cv::Point2f _center
 中心点 更多...
 
cv::Point2f _relative_angle
 相对目标转角 更多...
 
GyroData _gyro_data
 当前陀螺仪数据 更多...
 
std::vector< cv::Point2f > _corners
 角点 更多...
 
ResultPnP< float > _pnp_data
 PNP 数据 更多...
 
int64 _tick
 捕获该组合体时的时间戳 更多...
 

详细描述

装甲模块组合特征

构造及析构函数说明

◆ Armor() [1/4]

rm::Armor::Armor ( )
delete

◆ Armor() [2/4]

rm::Armor::Armor ( const Armor )
delete

◆ Armor() [3/4]

rm::Armor::Armor ( Armor &&  )
delete

◆ Armor() [4/4]

rm::Armor::Armor ( light_blob_ptr ,
light_blob_ptr ,
const GyroData ,
int64  ,
float  ,
float  ,
float  ,
float  ,
float  ,
float  ,
float  ,
ArmorSizeType   
)

成员函数说明

◆ cameraConvertToGyro()

static void rm::Armor::cameraConvertToGyro ( const cv::Matx33f &  cam_rmat,
const cv::Vec3f &  cam_tvec,
const GyroData gyro_data,
cv::Matx33f &  gyro_rmat,
cv::Vec3f &  gyro_tvec 
)
static

装甲板 PNP 信息从相机坐标系转化为陀螺仪坐标系

参数
[in]cam_rmat相机坐标系下的装甲板旋转矩阵
[in]cam_tvec相机坐标系下的装甲板平移向量
[in]gyro_data陀螺仪数据信息
[out]gyro_rmat陀螺仪坐标系下的装甲板旋转矩阵
[out]gyro_tvec陀螺仪坐标系下的装甲板平移向量

◆ cast()

static std::shared_ptr<Armor> rm::Armor::cast ( combo_ptr  p_combo)
inlinestatic

动态类型转换

参数
[in]p_combocombo_ptr 抽象指针
返回
派生对象指针
示例
samples/detector/hik/sample_hik_armor_size_classify.cpp , 以及 samples/detector/mv/sample_mv_armor_size_classify.cpp.

◆ getArmorType()

ArmorSizeType rm::Armor::getArmorType ( )
inline

获取装甲板大小类型

◆ getComboRatio()

float rm::Armor::getComboRatio ( )
inline

获取组合特征宽高比

◆ getCornerAngle()

float rm::Armor::getCornerAngle ( )
inline

获取左右灯条错位角

◆ getError()

float rm::Armor::getError ( )
inline

获取匹配误差

◆ getLengthRatio()

float rm::Armor::getLengthRatio ( )
inline

获取左右灯条长度的比值

◆ getNumberROI()

static cv::Mat rm::Armor::getNumberROI ( cv::Mat  src,
combo_ptr  p_combo 
)
static

根据图像中指定装甲板的信息,截取仅包含数字的 ROI

参数
[in]src输入图像
[in]p_combo指定的参考装甲板
返回
ROI

◆ getPose()

const cv::Vec2f& rm::Armor::getPose ( ) const
inline

获取装甲板姿态法向量

◆ getWidthRatio()

float rm::Armor::getWidthRatio ( )
inline

获取左右灯条宽度的比值

◆ gyroConvertToCamera()

static void rm::Armor::gyroConvertToCamera ( const cv::Matx33f &  gyro_rmat,
const cv::Vec3f &  gyro_tvec,
const GyroData gyro_data,
cv::Matx33f &  cam_rmat,
cv::Vec3f &  cam_tvec 
)
static

装甲板 PNP 信息从陀螺仪坐标系转化为相机坐标系

参数
[in]gyro_rmat陀螺仪坐标系下的装甲板旋转矩阵
[in]gyro_tvec陀螺仪坐标系下的装甲板平移向量
[in]gyro_data陀螺仪数据信息
[out]cam_rmat相机坐标系下的装甲板旋转矩阵
[out]cam_tvec相机坐标系下的装甲板平移向量

◆ isContainBlob()

static bool rm::Armor::isContainBlob ( light_blob_ptr  blob,
std::shared_ptr< Armor armor 
)
static

判断单个装甲板所在区域内是否包含指定的灯条

参数
[in]blob指定的灯条
[in]armor单一装甲板
返回
是否包含灯条中心

◆ loadSVM()

static void rm::Armor::loadSVM ( const std::string &  path)
inlinestatic

加载 SVM 装甲板大小分类的 *.xml 文件

参数
[in]path*.xml 文件路径
函数调用图:

◆ make_combo()

static std::shared_ptr<Armor> rm::Armor::make_combo ( light_blob_ptr p_left,
light_blob_ptr p_right,
const GyroData gyro_data,
int64  tick,
ArmorSizeType  armor_size_type = ArmorSizeType::UNKNOWN 
)
static

Armor 构造接口

注解
若提供参数 armor_size_type,则会强制构造 Armor
参数
[in]p_left左灯条共享指针
[in]p_right右灯条共享指针
[in]gyro_data当前时刻组合特征对应的陀螺仪数据
[in]tick捕获组合特征时的时间戳,目前采用 cv::getTickCount
[in]armor_size_type需要指定的大小装甲板类型,默认为 ArmorSizeType::UNKNOWN
返回
若成功,返回 Armor 的共享指针,否则返回空

◆ setPNP()

void rm::Armor::setPNP ( const ResultPnP< float > &  pnp)
inline

设置 PnP 信息

◆ setType()

void rm::Armor::setType ( RobotType  stat)
inline

设置机器人类型 RobotType


该类的文档由以下文件生成: