python+opencv实现目标跟踪

本文介绍了如何使用Python和OpenCV库进行目标跟踪。通过设置阈值、膨胀操作和轮廓检测找到目标区域,然后利用不同类型的追踪器(如KCF)进行初始化和跟踪。代码示例展示了从视频中选择目标并进行实时追踪的过程。
摘要由CSDN通过智能技术生成

diff = cv2.threshold(diff, 25, 255, cv2.THRESH_BINARY)[1]

diff = cv2.dilate(diff, self.es, iterations=2)

image, cnts, hierarchy = cv2.findContours(diff.copy(),cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

coordinate = []

bigC = None

bigMulti = 0

for c in cnts:

if cv2.contourArea© < 1500:

continue

(x,y,w,h) = cv2.boundingRect©

if w * h > bigMulti:

bigMulti = w * h

bigC = ((x,y),(x+w,y+h))

if bigC:

cv2.rectangle(frame, bigC[0],bigC[1], (255,0,0), 2, 1)

coordinate.append(bigC)

message = {“coord”:coordinate}

message[‘msg’] = None

return MessageItem(frame,message)

class Tracker(object):

‘’’

追踪者模块,用于追踪指定目标

‘’’

def init(self,tracker_type = “BOOSTING”,draw_coord = True):

‘’’

初始化追踪器种类

‘’’

#获得opencv版本

(major_ver, minor_ver, subminor_ver) = (cv2.version).split(‘.’)

self.tracker_types = [‘BOOSTING’, ‘MIL’,‘KCF’, ‘TLD’, ‘MEDIANFLOW’, ‘GOTURN’]

self.tracker_type = tracker_type

self.isWorking = False

self.draw_coord = draw_coord

#构造追踪器

if int(minor_ver) < 3:

self.tracker = cv2.Tracker_create(tracker_type)

else:

if tracker_type == ‘BOOSTING’:

self.tracker = cv2.TrackerBoosting_create()

if tracker_type == ‘MIL’:

self.tracker = cv2.TrackerMIL_cr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值