当前位置: 首页 > news >正文

对于装甲板的规范

在原图中寻找目标,并返回是否找到:
    一.寻找所有可能的灯条
        1.单通道,只用一个红或蓝通道
        2.两种不同的二值化阈值,应对不同亮度
        3.开闭运算:腐蚀一次,膨胀两次,再腐蚀一次,大小均为(3,5)
        4.轮廓提取
        5.只对没有子轮廓的轮廓进行判断:是否为有效灯条
            1)最小外接矩形的长宽比范围:(1.2,10)
            2)最小外界矩形的面积<50 且凸度(轮廓面积和其最小外接矩形面积之比)>0.4
            3)最小外界矩形的面积>=50 且凸度(轮廓面积和其最小外接矩形面积之比)>0.6
            条件的关系:1&&(2||3)
            Note: 面积小的凸度可能容易不稳定
        6.判断灯条颜色:
            1)拿最小外界矩形的boundingRect(不倾斜的),再适当调大大小
            2)与src取交集:region &= cv::Rect(0, 0, src.cols, src.rows);
            3)遍历该roi:
                red_cnt += roi.at<cv::Vec3b>(row, col)[2];
                blue_cnt += roi.at<cv::Vec3b>(row, col)[0];
            4)red_cnt > blue_cnt 则为红,反之,则为蓝
         7.    遍历之前的两种阈值出来的二值图出来的灯条,判断是否为相同灯条:
            1)两灯条中心距离的平方<9
            8.若为相同灯条,则哪个凸度低,把哪个给remove
                (先遍历,把要erase的序号记下来,从大到小erase!)
            9.合并两种阈值出来的二值图出来的灯条
            10.若light_blobs.size() >= 2,才return true
    二.匹配灯条,得到装甲板
        1.判断两个灯条是否可以匹配
            1)颜色均为enemy_color
            2)两个灯条的长度比lengthRatioJudge  < 2.5    > 0.4
            3)判断两个灯条的间距 
                side_length = sqrt(centers.ddot(centers));
                    (side_length / light_blob_i.length < 10 
                    && side_length / light_blob_i.length > 0.5);
            4)判断两个灯条的错位度 中心差.x和角度cos乘积+中心差.y和角度sin乘积
            5)判断装甲板方向 (angle_i + angle_j) / 2.0 
        (-120.0 < angle && angle < -60.0) || (60.0 < angle && angle < 120.0);
            6)判断两个灯条的角度差 abs(angle_i - angle_j) < 20;
             7)判断两个灯条的高度差 <30
         2.判断是否是有效装甲板
             1)装甲板区域超过src,则continue
             2)装甲板中心位置的y不可能太低 (max_y + min_y) / 2 < 120
             3)if ((max_x - min_x) / (max_y - min_y) < 0.8) continue;
             Note:它们获得的装甲板是一个正矩形
         3.用卷积神经网络对装甲板进行分类
Leran:
    cv::countNonZero
    rect可以&
    point可加减
    使用了opencv的Tracker
 


http://www.taodudu.cc/news/show-6105776.html

相关文章:

  • 装甲逆袭-NPC移动处理
  • 装甲逆袭-玩家碰撞处理
  • 他一个人干掉了5个装甲军
  • 装甲逆袭-加载NPC
  • robomaster(1)装甲板识别
  • 装甲逆袭-资源加载
  • 视觉组考核——装甲板识别
  • 装甲逆袭-玩家移动处理
  • 开机后我的计算机打不开,电脑开机后图标打不开怎么办
  • 电脑开不了机的原因和解决办法
  • Proe转Solidworks
  • proe5.0插件在windows7 64系统预览模型
  • proe常用c语言语句,proe关系式(大全).doc
  • proe5.0启动失败,光标转了几圈后没有任何反应
  • proe常用c语言语句,Proe如何使用if条件语句?
  • proe常用c语言语句,带你轻松搞懂Proe条件语句
  • 【MFC】基于OpenCV的魔镜
  • 魔镜魔镜告诉我谁是世界上最美的人 语音唤醒,百度语音识别。从装系统开始
  • 制作魔镜页
  • 魔镜连接本地mysql_打造属于你的树莓派“魔镜”—硬件篇
  • 旧电脑利用:windows网页版魔镜【不需树莓派】
  • 笔记1 第11课 贪心初步 ——柠檬水找零,分发饼干,跳跃游戏,完成所有任务所需最小能量——极客时间算法
  • 学完教程,不知道接下去从哪里开始做自己的第一个APP,怎么办?酷课堂iOS交流群问答(201902期)
  • 贪心相关:柠檬水找零、买卖股票的最佳时机、分发饼干、跳跃游戏 ...
  • 干货来了 | SQL 进阶技巧
  • 干货 | SQL 进阶技巧
  • 【LeetCode】两道贪心算法题目-455分发饼干,860柠檬水找零
  • LeetCode455分发饼干
  • 柠檬模拟群面复盘
  • 7-7 快速求和