zoukankan      html  css  js  c++  java
  • 非极大值抑制

    1  算法原理

       非极大值抑制算法(Non-maximum suppression, NMS)抑制不是极大值的元素,搜索局部的极大值。这个局部代表的是一个邻域,邻域有两个参数可变,一是邻域的维数,二是邻域的大小。

      在3领域中,假设一个行向量的长度为w,从左向右,由第一个到第w个和其3领域中的数值进行比对。

      (1)情况1:如果某个i大于i+1并且小于i-1,则其为一个绝不最大值,同时也就意味着i+1不是一个局部最大值,所以将i移动2个步长,从i+2开始继续向后进行比较判断。

      (2)情形2:如果某个i不满足上述条件(1),则将i+1赋值给i,继续对新的i进行比对。当比对到最后一个w时,直接将w设置为局部最大值。算法流程如下图所示。

        

    2 3邻域情况下NMS函数的实现

     1  //求解局部最大值
     2  //输入参数a:数组a
     3 //输入参数n:数组的维数
     4 int mynms(int a[],int n)
     5 {
     6     int i = 2;
     7     while(i < n){
     8         if((a[i]>a[i+1])||(a[i]= a[i+1])){
     9             if((a[i]>a[i-1])||(a[i]= a[i-1])){
    10                 return i;
    11             }
    12             i = i + 1;
    13         }
    14         else{
    15             i = i + 2;
    16         }
    17     }
    18    //没有找到局部最大值,返回-1  
    19     return -1;
    20 }

    3 3邻域情况下NMS函数的调用示例

    int main()
    {
        //创建数组a
        int n = 6;
        int a[n] = {1,6,3,5,4,6};
        //求局部最大值的索引值
        int index = mynms(a,6);
        //找到局部最大值时打印出局部最大值
        if(index != -1){
            printf("第一个局部最大值:
        a[%d] = %d
    ",index,a[index]);
        }
        return 0;
    }

  • 相关阅读:
    攻击方法
    Paillier 同态加密方案
    $EL Gamal$ 密码方案的椭圆曲线形式
    【hbase】hbase的基本使用
    【linux】创建用户,查看用户
    【linux】删除命令
    【linux】上传文件也可以直接拖动文件到xshell中
    【linux】安装pip时报错
    【Linux】界面快捷键
    【linux】Ubuntu无法下载mysql
  • 原文地址:https://www.cnblogs.com/cuizhu/p/9517196.html
Copyright © 2011-2022 走看看