非极大值抑制代码

更新时间:2023-06-24 11:11:25 阅读: 评论:0

鸿星尔克广告语
新手机第一次怎么充电对电池好非极大值抑制代码
    非极大值抑制是一种常用于物体检测和边缘提取中的算法。其原理是在局部极值点附近抑制非极大值点,从而得到更加精确可靠的结果。以下是一份非极大值抑制的代码示例:蝾螈
    ```
    import cv2
胆小反义词    import numpy as np
    def non_max_suppression(boxes, overlapThresh):
    # 初始化保留下来的边框列表
    pick = []
    # 获取边框的坐标值以及分数值
    x1 = boxes[:, 0]
    y1 = boxes[:, 1]
    x2 = boxes[:, 2]
    y2 = boxes[:, 3]
    score = boxes[:, 4]
    # 计算每个边框的面积
    area = (x2 - x1 + 1) * (y2 - y1 + 1)
    # 按照分数值从大到小排序
    idxs = np.argsort(score)[::-1]
    # 遍历所有边框
小学六年级语文
人力资源6大模块    while len(idxs) > 0:
    # 取出分数值最大的边框,并将其加入保留列表中
    i = idxs[0]
    pick.append(i)
    # 计算当前边框与其他边框的重叠部分的面积
    xx1 = np.maximum(x1[i], x1[idxs[1:]])
    yy1 = np.maximum(y1[i], y1[idxs[1:]])
    xx2 = np.minimum(x2[i], x2[idxs[1:]])
    yy2 = np.minimum(y2[i], y2[idxs[1:]])
    w = np.maximum(0, xx2 - xx1 + 1)
春卷做法    h = np.maximum(0, yy2 - yy1 + 1)菜小
    overlap = (w * h) / area[idxs[1:]]
    # 将与当前边框重叠面积大于指定阈值的边框从列表中删除
    idxs = np.delete(idxs, np.concatenate(([0], np.where(overlap > overlapThresh)[0])))
    # 返回保留下来的边框列表
    return pick
    ```
    上述代码实现了一个名为non_max_suppression的函数,该函数接受两个参数:边框列表和重叠阈值。其中,边框列表是一个n x 5的数组,每行表示一个边框的坐标值(x1,y1,x2,y2)和分数值;重叠阈值是一个0到1之间的浮点数,用于指定重叠面积的阈值。
    函数内部的实现过程是首先按照分数值从大到小排序,然后遍历所有边框,依次选取分数值最大的边框,并将其加入保留列表中。接着,计算当前边框与其他边框的重叠部分的面积,并将与当前边框重叠面积大于指定阈值的边框从列表中删除。最终,返回保留下来的边框列表。
    上述代码可以用于物体检测和边缘提取等领域,可以帮助我们提取出更加精确可靠的结果。

本文发布于:2023-06-24 11:11:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1052670.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:边框   重叠   列表   抑制   阈值   极大值
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图