资讯专栏INFORMATION COLUMN

基于python-openv下的模板跟踪算法的实现

OnlyLing / 2539人阅读

摘要:前几周搞了一个基于模板跟踪的算法实现。但是对于模板的选取我们也需要小心点,要不然会跟踪丢失。这个你们用了之后会发现其中的小奥秘。后期我会使用传感器来进行对于视觉的处理,请大家耐心等待哦

前几周搞了一个基于模板跟踪的算法实现。即在视频中跟踪出模板目标
闲话不多说,直接程序给出:

# -*- coding: utf-8 -*-
"""
Created on Thu Jun 30 09:13:24 2016

@author: liu
"""  
import cv2
import numpy as np

from matplotlib import pyplot as plt
#img = cv2.imread("xucaise.jpg",0)

#template = cv2.imread("xuxu.jpg",0)
template = cv2.imread("ppp.png",0)
w, h = template.shape[::-1]

#s1=cv2.imread("xupanmu.jpg",cv2.IMREAD_GRAYSCALE)
#s1 = cv2.imread(ph1)
#s2 = cv2.imread(ph2)
methods = ["cv2.TM_SQDIFF_NORMED"]
#methods = ["cv2.TM_CCOEFF_NORMED"]#平方差匹配法,最好的匹配为0,值越大匹配越差;
       
cap = cv2.VideoCapture("double.mov")

ret,frame = cap.read()
c=0
time=10
a=1
while ret:
    
    ret ,frame = cap.read()
    c=c+1
    if ret == True:
        
    
        if (c%time==0):
            for meth in methods:
                
                 method = cv2.TM_SQDIFF_NORMED#eval(meth)
                 cv2.imwrite("xuphoto"+str(c)+".png",frame)
                 s2=cv2.imread("xuphoto"+str(c)+".png",0)
                 #s2=frame
                 #img = cv2.imread("xucaise.jpg",0)
                 res = cv2.matchTemplate(s2,template,method)
                 #cv2.imwrite("pp"+str(c)+".jpg",res)
               
                 min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
                 if method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]:
                     top_left = min_loc
                 else:
                     top_left = max_loc
                 #top_left = max_loc
                 bottom_right = (top_left[0] + w +100, top_left[1] + h +100 )
                 cv2.rectangle(s2,top_left, bottom_right, 255, 2)
                 #cv2.imshow("img2",s2)
                 cv2.imwrite("iphone"+str(c)+".png",s2)
                 
                 plt.subplot(121),plt.imshow(res,cmap = "gray")
                 plt.title("Matching Result"), plt.xticks([]), plt.yticks([])
                # cv2.imwrite("ccc"+str(c)+".jpg",res)
                 plt.subplot(122),plt.imshow(s2,cmap = "gray")
                 plt.title("Detected Point"), plt.xticks([]), plt.yticks([])
                 
                 
                 
                 plt.suptitle("cv2.TM_SQDIFF_NORMED")
                 #plt.suptitle("cv2.TM_CCOEFF_NORMED")
                 
                 plt.show()
                 
                 
                 #k = cv2.waitKey(60) & 0xff
                 #if k == 27:
                  #   break
                #pic_sub(emptyimg,s1,s2)  
                
                
                 if c>200:
                
                     c=0
    
cv2.destroyAllWindows()
cap.release()




程序目前是这些,如有看不懂的地方可以和我交流:liushengkai008@163.com
这个实现的结果就是能够跟踪我们选取的模板目标。但是对于模板的选取我们也需要小心点,要不然会跟踪丢失。这个你们用了之后会发现其中的小奥秘。
后期我会使用kinnect传感器来进行对于视觉的处理,请大家耐心等待哦

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/61584.html

相关文章

  • 基于python-openv模板跟踪算法实现

    摘要:前几周搞了一个基于模板跟踪的算法实现。但是对于模板的选取我们也需要小心点,要不然会跟踪丢失。这个你们用了之后会发现其中的小奥秘。后期我会使用传感器来进行对于视觉的处理,请大家耐心等待哦 前几周搞了一个基于模板跟踪的算法实现。即在视频中跟踪出模板目标闲话不多说,直接程序给出: # -*- coding: utf-8 -*- Created on Thu Jun 30 09:13:24 ...

    jifei 评论0 收藏0
  • 基于卷积神经网络奶牛个体身份识别

    摘要:将躯干图像灰度化后经插值运算和归一化变换为大小的矩阵,作为结构的卷积神经网络的输入进行个体识别。卷积神经网络构建为减少数据量并保证输入图像的细节信息,将奶牛躯干图像灰度化后通过插值计算变化为的图像,并除以归一化后作为输入数据。 最近看了一个有趣的人工智能应用,给大家分享一下~这是一个人工智能与农业的结合,在农业中我们经常需要给个体动物做标记,目的是对奶牛做身份识别,然后可以对动物做养殖和繁殖...

    MyFaith 评论0 收藏0
  • 原理讲解-项目实战 <-> DeepSORT算法实现车辆和行人跟踪计数和

    摘要:点击上方码农的后花园,选择星标公众号精选文章,第一时间送达上一期中我们讲解了多目标跟踪算法算法的原理实现,今天就给大家带来基于算法和算法实现智能交通场景下车辆和行人跟踪计数和车辆是否道路违规检测的落地项目。 点击上方码农的后花园,选择星标 公众号 精选文章,第一时间送达 上一期中我们讲解...

    FleyX 评论0 收藏0
  • 2016年前端开发学习计划

    摘要:年,软件开发界发生了很多变化。六数据存储是一个关系型数据库管理系统,由瑞典公司开发,目前属于旗下公司。最流行的关系型数据库管理系统,在应用方面是最好的,关系数据库管理系统应用软件之一。七是最新的修订版本,年月由万维网联盟完成标准制定。 2015年,软件开发界发生了很多变化。有很多流行的新语言发布了,也有很多重要的框架和工具发布了新版本。下面有一个我们觉得最重要的简短清单,同时也有我们觉...

    asoren 评论0 收藏0
  • 2016年前端开发学习计划

    摘要:年,软件开发界发生了很多变化。六数据存储是一个关系型数据库管理系统,由瑞典公司开发,目前属于旗下公司。最流行的关系型数据库管理系统,在应用方面是最好的,关系数据库管理系统应用软件之一。七是最新的修订版本,年月由万维网联盟完成标准制定。 2015年,软件开发界发生了很多变化。有很多流行的新语言发布了,也有很多重要的框架和工具发布了新版本。下面有一个我们觉得最重要的简短清单,同时也有我们觉...

    Null 评论0 收藏0

发表评论

0条评论

OnlyLing

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<