OpenCV之目标检测


前言

案例 Fu Xianjun. All Rights Reserved.
随着当今世界的发展,计算机视觉技术的应用越来越广泛。伴随着硬件设备的不断升级,构造复杂的计算机视觉应用变得越来越容易了。OpenCV像是一个黑盒,让我们专注于视觉应用的开发,而不必过多的关注基础图象处理的具体细节。


提示:以下是本篇文章正文内容,下面案例可供参考

一、目标检测是什么?

计算机视觉中的目标检测是一个涉及广泛而又发展迅速的领域,所以opencv中某个特定技术很容易发展过时,之前的人脸检测器(Haar classifier)就是这样,但人脸检测又有巨大的需求,因此需要一个不错的基线技术供使用,而且人脸检测是建立在最经常使用的分类器boosting上,因此更加通用。事实上,一些公司使用了opencv中的“人脸”检测器来检测“基本刚性的”物体(脸,汽车,自行车,人体)。通过成千上万的物体的各个角度的训练图像,训练出新的分类器,这个技术被用来设计目前最优的检测算法。因此,对于此类识别任务,Haar分类器是一个有用的工具。

二、使用步骤

原图展示:
在这里插入图片描述

1.引入库

import cv2
import numpy as np

2.读入数据

OPEN_OBJECT_TRACKERS = {
    "csrt": cv2.TrackerCSRT_create,
    "kcf": cv2.TrackerKCF_create,
    "boosting": cv2.TrackerBoosting_create,
    "mil": cv2.TrackerMIL_create,
    "tld": cv2.TrackerTLD_create,
    "medianflow": cv2.TrackerMedianFlow_create,
    "mosse": cv2.TrackerMOSSE_create
}

3.操作步骤

#实例化OpencCV的tracker
trackers = cv2.MultiTracker_create()
vs = cv2.VideoCapture("los_angeles.mp4")
while True:
    #取当前帧
    frame = vs.read()
    # (true, data)
    frame = frame[1]
    # 到头了就结束
    if frame is None:
        break
    
    # resize每一帧
    (h,w) = frame.shape[:2]
    width=600
    r = width/float(w)
    dim = (width, int(h*r))
    frame = cv2.resize(frame, dim, interpolation=cv2.INTER_AREA)
    
    #追踪结果
    (success, boxes) = trackers.update(frame)
    
    # 绘制区域
    for box in boxes:
        (x,y,w,h) = [int(v) for v in box]
        cv2.rectangle(frame, (x,y),(x+w,y+h), (0,255,0),2)
        
        # 显示
    cv2.imshow("Frame", frame)

    key = cv2.waitKey(100) & 0xFF
    if key ==ord("s"):
        box = cv2.selectROI("Frame", frame, fromCenter=False,
                           showCrosshair=True)

        #创建一个新的追踪器
        tracker = OPEN_OBJECT_TRACKERS["csrt"]()
        trackers.add(tracker, frame, box)
    #退出
    elif key == 27:
        break

4.显示结果

#关闭视频
vs.release()
cv2.destroyAllWindows()

5.结果展示

在这里插入图片描述

三、总结

这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了OpenCV 几何变换的使用,而数字图像处理提供了大量能使我们快速便捷地处理数据的函数和方法。

版权声明:本文为CSDN博主「清风袭面」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_46338507/article/details/118108528

清风袭面

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

实战:使用 PyTorch 和 OpenCV 实现实时目标检测系统

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达一、引言自动驾驶汽车可能仍然难以理解人类和垃圾桶之间的区别,但这并没有使最先进的物体检测模型在过去十年中取得的惊人进步相去甚远。将其

python-OpenCV图像图形检测(四)

实例下载:图形检测,检测图形轮廓,边缘检测,轮廓拟合 一、简介 图形检测是计算机视觉的一项重要功能,通过图形检测可以分析图像中可能存在的形状,然后对这些形状进