Opencv NMS

Opencv NMS的完整攻略

Opencv NMS(Non-Maximum Suppression)是一种常用的目标检测技术,可以用于去除重叠的检测框,提高检测的准确性。本文将详细讲解Opencv NMS的完整攻略,包括基本原理、方法和两个示例。

Opencv NMS的基本原理

Opencv NMS一种基于非极大值抑制的目标检测技术,通过去除重叠的检测框,提高检测的准确性。体实现方法包括:

  • cv2.dnn.NMSBoxes函数:用于去除重叠的检测框。

Opencv NMS的使用方法

Opencv库提供cv2.dnn.NMSBoxes函数,可以用于去除重叠的检测框。的基本语法如:

indices = cv2nn.NMSBoxes(boxes, scores, score_threshold, nms_threshold)

其中,boxes表示输入的检测框,scores表示输入的检测框得分,score_threshold表示得分的阈值,nms_threshold表示重的阈值,表示输出的保留的检测框的索引。

示例说明

下面是两个Opencv NMS的示例:

示例1:使用NMSBoxes函数去除重叠的检测框

import cv2
import numpy as np

# 读取图像
img = cv2('test.jpg')

# 定检测框和得分
boxes = np.array([[50, 50, 100, 100], [60, 60, 120, 120], [70, 70, 140, 140]])
scores = np.array([09, 0.8, 0.7])

# 使用NMSBoxes函数去除重叠的检测框
indices = cv2.dnn.NMSBoxes(boxes, scores, 0.5, 0.4)

# 绘制保留的检测框
for i in indices:
    i = i[0    box = boxes[i]
    cv2.rectangle(img, (box[0], box[1]), (box[2 box[3]), (0, 255, 0), 2)

# 显示原始图像和去除重叠的检测框后的图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行该代码系统会显示原始图像和去除重叠的检测框后的图像。

示例2:使用NMSBoxes函数去除重叠的检测框

import cv2
import numpy as np

# 读取图像
img = cv2.imread('test.jpg')

# 定义检测框得分
boxes = np.array([[50, 50, 100, 100], [60, 60, 120, 120], [70, 70, 140, 140]])
scores = np.array([0.9, .8, 0.7])

# 使用NMSBoxes函数去除重叠检测框
indices = cv2.dnn.NMSBoxes(boxes, scores,0.5, 0.4)

# 绘制保留的检测框
for i in indices:
    i = i[0]
    box = boxes[i]
    cv2.rectangle(img, (box[0], box1]), (box[2], box[3]), (0, 255, 0), 2)

# 显示始图像和去除重叠的检测框后的图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行该代码,系统会显示原始图像和去重叠的检测框后的图像。

结论

Opencv NMS是一种基于非极大值抑制的目标测技术通过去除重叠的检测框,提高检测的准确性。通过Opencv中的cv2.dnn.NMSBoxes函数,可以实现去除重叠的检测框通过本文介绍,应该已经了解了Opencv NMS的基本原理、方法和两个例说明,根据需要灵活使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Opencv NMS - Python技术站

(0)
上一篇 2023年5月10日
下一篇 2023年5月10日

相关文章

  • Opencv Deep Learning

    以下是关于Opencv DeepLearning的完整攻略。 Opencv DeepLearning基本原理 Opencv DeepLearning是Opencv中的深度学习模块,提供了一系列深度学习相关的函数类,包括模型加载、图像预处理、模型推理等。Opencv DeepLearning支持多种深度学习框架,如TensorFlow、Caffe、Darkne…

    python 2023年5月11日
    00
  • Python OpenCV – startWindowThread()

    以下是关于Python OpenCV-startWindowThread()的完整攻略。 Python OpenCV-startWindowThread()基本原理 startWindowThread()是OpenCV中的一个函数,用于启动窗口线程。在使用OpenCV进行图像处理,我们通常需要在窗口中显示图像。但是,如果我们在主线程中显示图像,会导致程序阻塞…

    python 2023年5月11日
    00
  • Opencv 8-邻域连通域标记

    以下是关于Opencv 8-邻域连通域标记的详细攻略。 Opencv 8-邻域连通域标记基本原理 Opencv 8-邻通域标记是一常用的图像处理技术,用于在图像中找连通域。具体实现方法包括: cv2.connectedComponents 函数:用于对二值图像进行连通标记。 8-域连通域标记算法的基本原理是二值图像中的像素点分为若干个连通域每个连通域中的像素…

    python 2023年5月10日
    00
  • Opencv Hessian角点检测

    以下是关于Opencv Hessian角点检测的详细攻略。 Opencv Hessian角点检测基本原理 Hessian角点检测是一种常用的图像处理技术,用于检测图像中的角。Hessian角点检测的基本原理是通过计算图像的Hessian矩阵,找到矩阵的特征值和特征向量从而确定图像中的点。 Opencv库提供cv2.cornerHarris函数和cv2.cor…

    python 2023年5月10日
    00
  • Opencv灰度化

    OpenCV大津二值化算法 OpenCV大津二值化算法是一种自适应的二值化方法,可以根据图像的灰度分布自动确定二值化的阈值,从而将图像转换为黑白二值图像。本文将介绍大津二值化算法的基本原理和使用方法,并提供两个示例说明。 大津二值化算法的基本原理 大津二值化算法的基本原理是寻找一个阈值,使得将图像分为两个部分后,两个部分的类内方差之和最小,类间方差之和最大。…

    python 2023年5月10日
    00
  • Opencv 仿射变换倾斜

    Opencv 仿射变换倾斜的完整攻略 Opencv 仿射变换倾斜是一种常见的图像处理技术,可以用于图像的倾斜、旋转、缩放等操作。本文将详细讲解Opencv 仿射变换倾斜的完整攻略,包括基本原理、使用方法和两个示例说明。 Opencv 仿射变换倾斜的基本原理 Opencv 仿射变换倾斜是一种基于仿射变换的图像处理技术,可以通过对图像进行平移、旋转、缩放操作,实…

    python 2023年5月10日
    00
  • Opencv 8-连接数

    以下是关于Opencv 8-连接数的详细攻略。 Opencv 8-连接数基本原理 Opencv 8-连接数是一种常用的图像处理技术,用于在二值图像中查找连通域。具体实现方法包括: cv2.findContours 函数:用于在二值图像中查找轮廓。 8-连接数算法的基本原理是在二值图像中查找连通域时,将每个像素点作一个节点,如果两个节点相邻且都为前景像素,则它…

    python 2023年5月10日
    00
  • Opencv 使用绝对值差和进行模式匹配

    以下是关于Opencv 使用绝对值差和进行模式匹配的详细讲解。 Opencv 使用绝对值差和进行模式匹配基本原理 Opencv 使用绝对值差和进行模式匹配是一种常用的图像处理技术,可以用于在图像中查找指定的模式。具体实方法包括: cv2.absdiff 函数:用于计算两个图像的绝对值差。 cv2.threshold:用于对图像进行二值化处理。 cv.find…

    python 2023年5月10日
    00
合作推广
合作推广
分享本页
返回顶部