Armor_Detection

装甲板整体识别实际上非常的简单,主要在于参数复杂且多

我将会带着看完整个流程,并对其中部分知识进行补充,但是函数的具体运作逻辑需要自行多熟悉几遍

整个装甲板基本函数如下

std::vector<Armor> Detection(const cv::Mat &src); //识别流程入口函数

// ======================图像处理======================
void setImage(const cv::Mat &src); // 对图像进行二值化

// ======================灯条匹配======================
void findLights(); // 找灯条获取候选匹配的灯条
bool isLight(Light& light, std::vector<cv::Point> &cnt); //判断是否为灯条

// =====================装甲板匹配=====================
void matchLights(); // 匹配灯条获取候选装甲板
bool conTain(cv::RotatedRect &match_rect,std::vector<Light> &Lights, size_t &i, size_t &j); // 判断两个灯条是否包含第三个灯条
void chooseTarget(); //找出优先级最高的装甲板
bool get_max(const float *data, float &confidence, int &id);    // 寻找最大值

// =====================装甲板分数=====================
int armorGrade(const Armor& checkArmor);

// ======================数字图像=====================
void preImplement(Armor& armor);        //获取装甲板数字图像ROI

接下来我将会为每一个函数进行解析

在对应的函数里面我会对相应的参数进行解释

如下是整体代码的运行逻辑

results matching ""

    No results matching ""