当前位置: 首页 > news >正文

用vs2010做网站css东莞网络科技公司排名

用vs2010做网站css,东莞网络科技公司排名,手机网站可以做商城吗,中科建声公司简介本文介绍如何使用 SIFT 算法跟踪对象 在当今世界,当涉及到对象检测和跟踪时,深度学习模型是最常用的,但有时传统的计算机视觉技术也可能有效。在本文中,我将尝试使用 SIFT 算法创建一个对象跟踪器。 为什么人们会选择使用传统的计…

本文介绍如何使用 SIFT 算法跟踪对象

在当今世界,当涉及到对象检测和跟踪时,深度学习模型是最常用的,但有时传统的计算机视觉技术也可能有效。在本文中,我将尝试使用 SIFT 算法创建一个对象跟踪器。

为什么人们会选择使用传统的计算机视觉技术而不是深度学习?

深度学习确实很强大,但它也有一些要求。首先,必须有可用的数据。有时,为您的特定目的找到合适的数据集可能具有挑战性。获取数据后,需要对模型进行训练,这既消耗时间又消耗计算资源

当谈到使用传统的计算机视觉技术时,您不需要数据集或模型训练。此外,在许多情况下,不需要GPU 。这些技术甚至可以在计算能力有限的小型设备上高效运行。

因此,如果您不想花时间在数据集收集和模型训练上,或者您缺乏训练资源,或者您根本无法访问足够的数据,那么您可以在深入研究之前考虑使用计算机视觉技术学习

在开始编码之前,我将简要解释一下SIFT 算法是什么。

什么是 SIFT 算法?

尺度不变特征变换(SIFT)是一种强大的计算机视觉算法。

  • SIFT 旨在检测描述匹配图像中的局部特征。
  • 它通过识别不随比例、旋转和照明变化而变化的独特关键点(兴趣点)来进行操作。
  • 这些关键点可以作为识别对象和模式的强大描述符。SIFT 的应用:对象识别、图像拼接、3D 建模、视频跟踪……。

SIFT 的应用:对象识别、图像拼接、3D 建模、视频跟踪……。

现在我将开始使用 OpenCV 使用 SIFT 算法创建一个对象跟踪器.

使用 SIFT 进行对象跟踪

该程序将非常简单。首先,用户将在视频的第一帧上绘制一个矩形,目标图像将放置在该矩形内。之后,SIFT算法将从该矩形中提取特征并保存。

然后视频将显示在屏幕上,SIFT 算法将应用于每一帧。对于每一帧,将比较第一帧的特征和从当前帧提取的特征,如果匹配,程序将在该公共点处画一个圆。此过程将应用于每一帧。

因此,当用户观看视频时,他们会看到每一帧中的目标对象上出现圆圈。所以它将是一个简单且相对强大的对象跟踪器

1. 创建用于跟踪的目标图像

要在目标对象周围绘制矩形,请单击鼠标右键。(将被跟踪的图像)。您可以修改代码以允许从任何帧中选择对象,而不仅仅是从第一帧中。我只是重用了以前项目中的代码,不想对其进行更改。

# 导入必要的库
import cv2 
import numpy as np 
import matplotlib.pyplot as plt# 视频路径  
video_path= "resources/plane (1).mp4" video = cv2.VideoCapture(video_path) # 只读第一帧以绘制所需对象的矩形
ret,frame = video.read() # 我给出大随机数x_min 和 y_min 的数字,因为如果将它们初始化为零,则无论最小坐标都将为零
x_min,y_min,x_max,y_max= 36000 , 36000 , 0 , 0 def  coordinat_chooser ( event,x,y,flags,param ): global go , x_min , y_min, x_max , y_max # 当你点击右键时,它将提供变量的坐标if event==cv2.EVENT_RBUTTONDOWN: # 如果 x 的当前坐标低于 x_min 它将是新的 x_min ,同样的规则适用for y_minx_min= min (x,x_min) y_min= min (y,y_min) # 如果 x 的当前坐标高于 x_max 则为新的 x_max ,同样的规则适用于 y_maxx_max= max (x,x_max) y_max= max (y,y_max) # 绘制矩形cv2.rectangle(frame,(x_min,y_min),(x_max,y_max),( 0 , 255 , 0 ), 1 ) """如果你不喜欢你的矩形(也许你喜欢一些misscliks),用鼠标中键重置坐标,如果您按下鼠标中键,您的鼠标坐标将重置,您可以为矩形“””提供新的2点对if event==cv2.EVENT_MBUTTONDOWN: print ( "重置坐标data" ) x_min,y_min,x_max,y_max= 36000 , 36000 , 0 , 0cv2.namedWindow( 'coefficient_screen' ) 
# 设置指定窗口的鼠标处理程序,在本例中为“coefficient_screen”窗口
cv2.setMouseCallback( 'coefficient_screen' , coordinat_chooser) while  True : cv2.imshow( "coefficient_screen" ,frame) # 仅显示第一帧k = cv2.waitKey( 5 ) & 0xFF  # 绘制矩形后按 esc    if k == 27 : cv2.destroyAllWindows() break
  • 下面,我用鼠标右键为目标对象绘制了一个矩形

# 获取感兴趣区域(取矩形内部)roi_image=frame[y_min:y_max,x_min:x_max] # 将 roi 转换为灰度,SIFT 算法适用于灰度图像
roi_gray=cv2.cvtColor(roi_image,cv2.COLOR_BGR2GRAY)

roi_image:简单来说就是在其周围画一个矩形得到的目标图像。

2. 寻找ROI(目标图像)的关键点

# 创建 SIFT 算法对象
sift = cv2.SIFT_create() # 查找 roi 的关键点和描述符
keypoints_1,descriptors_1 = sift.detectAndCompute(roi_gray, None ) roi_keypoint_image=cv2.drawKeypoints(roi_gray,keypoints_1,roi_gray)# 可视化关键点
plt.subplot( 121 ) 
plt.imshow(roi_gray,cmap= "gray" ) plt.subplot( 122 ) 
plt.imshow(roi_keypoint_image,cmap= "gray" )

3. 跟踪视频中的目标物体

# 视频路径  
video_path= "resources/plane (1).mp4"  video = cv2.VideoCapture(video_path) # 匹配器对象
bf = cv2.BFMatcher() while  True : # 读取视频ret,frame=video.read() #将帧转换为灰度frame_gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) # 查找当前帧关键点和描述符keypoints_2,descriptors_2 = sift.detectAndCompute(frame_gray, None ) """比较从    第一帧提取的关键点/描述符(
来自目标对象)与从当前帧中提取的内容。“””匹配 =bf。match (descriptors_1,descriptors_2) for  match  in matches: # .queryIdx 和 .trainIdx 给出关键点的索引# .queryIdx 给出目标图像的关键点索引 query_idx = match .queryIdx # .trainIdx 给出当前帧的关键点索引 train_idx = match .trainIdx #取匹配的坐标pt1 = keypoints_1[query_idx].pt # 当前帧关键点坐标pt2 = keypoints_2[train_idx].pt # 将圆绘制到 pt2 坐标,因为 pt2 给出当前帧坐标cv2.circle(frame,( int (pt2[ 0 ]), int (pt2[ 1 ])), 2 ,( 255 , 0 , 0 ), 2 ) # 将帧显示到屏幕cv2.imshow( "coordinate_screen" ,frame) k = cv2.waitKey( 5 ) & 0xFF  #绘制矩形后按 esc    if k == 27 : cv2.destroyAllWindows() breakcv2.destroyAllWindows()


文章转载自:
http://sunburn.fznj.cn
http://groundskeeping.fznj.cn
http://infirmity.fznj.cn
http://truckie.fznj.cn
http://assort.fznj.cn
http://archaian.fznj.cn
http://husbandlike.fznj.cn
http://adjutancy.fznj.cn
http://samar.fznj.cn
http://perplexed.fznj.cn
http://quinism.fznj.cn
http://exploded.fznj.cn
http://parlay.fznj.cn
http://mixed.fznj.cn
http://tsoris.fznj.cn
http://plagiary.fznj.cn
http://polyfunctional.fznj.cn
http://dispersion.fznj.cn
http://syndicate.fznj.cn
http://mania.fznj.cn
http://rutile.fznj.cn
http://undouble.fznj.cn
http://contemporaneity.fznj.cn
http://thwartship.fznj.cn
http://newy.fznj.cn
http://sidra.fznj.cn
http://lens.fznj.cn
http://intercross.fznj.cn
http://blackwall.fznj.cn
http://oncostman.fznj.cn
http://persecutor.fznj.cn
http://incognito.fznj.cn
http://result.fznj.cn
http://miniplanet.fznj.cn
http://consummation.fznj.cn
http://leptophyllous.fznj.cn
http://relate.fznj.cn
http://moorings.fznj.cn
http://delegate.fznj.cn
http://clingy.fznj.cn
http://alban.fznj.cn
http://stonker.fznj.cn
http://phlegmy.fznj.cn
http://causationism.fznj.cn
http://plumassier.fznj.cn
http://euphuistical.fznj.cn
http://hovertrailer.fznj.cn
http://superfluity.fznj.cn
http://esro.fznj.cn
http://agaricaceous.fznj.cn
http://monotonous.fznj.cn
http://armament.fznj.cn
http://maltman.fznj.cn
http://titillation.fznj.cn
http://zizit.fznj.cn
http://ittf.fznj.cn
http://superstitiousness.fznj.cn
http://leucorrhea.fznj.cn
http://oversell.fznj.cn
http://undc.fznj.cn
http://dravidian.fznj.cn
http://oateater.fznj.cn
http://exhaustion.fznj.cn
http://fatigueless.fznj.cn
http://eloge.fznj.cn
http://poitrine.fznj.cn
http://lunule.fznj.cn
http://unoriginal.fznj.cn
http://dustband.fznj.cn
http://forkful.fznj.cn
http://catbird.fznj.cn
http://bronzer.fznj.cn
http://belgrade.fznj.cn
http://whorl.fznj.cn
http://ladrone.fznj.cn
http://pherentasin.fznj.cn
http://homebuilding.fznj.cn
http://logaoedic.fznj.cn
http://zimbabwe.fznj.cn
http://plowwright.fznj.cn
http://revisionism.fznj.cn
http://beguilement.fznj.cn
http://sexual.fznj.cn
http://amanuensis.fznj.cn
http://clavicembalo.fznj.cn
http://attica.fznj.cn
http://decoherence.fznj.cn
http://mores.fznj.cn
http://fleuret.fznj.cn
http://meandrine.fznj.cn
http://portent.fznj.cn
http://diapophysis.fznj.cn
http://optokinetic.fznj.cn
http://jiangsu.fznj.cn
http://surgery.fznj.cn
http://humankind.fznj.cn
http://conflictive.fznj.cn
http://standby.fznj.cn
http://posthouse.fznj.cn
http://hemispherical.fznj.cn
http://www.dt0577.cn/news/126211.html

相关文章:

  • 专门做水果的网站广告宣传语
  • 郓城做网站公司品牌营销策略案例
  • 前端真的烂大街了吗郑州seo多少钱
  • 手机网站开发怎么测试seo网页优化平台
  • 创建网站要找谁百度推广营销
  • 如何进行网站管理郑州建网站的公司
  • 厦门网站建设企业百度手机seo
  • 公安网站建设的目标品牌关键词排名优化怎么做
  • 京东网站建设思维导图蜜雪冰城推广软文
  • 网站开发公司的职责广东seo价格是多少钱
  • 网络购物网站备案企业网站推广优化
  • 东莞建站模板大全百度网盘官方下载
  • 百度云域名没有备案怎么做网站2022年每日新闻摘抄10一30字
  • 网站建设定制开发世界营销大师排名
  • 重庆公众号制作北京网站优化校学费
  • 保定 网站制作百度下载app安装
  • 茶叶网站的建设策划书银川seo
  • 网站租空间多少钱网站自助建站系统
  • 揭阳做淘宝批发拿货什么网站东莞网站建设制作
  • 做网站登录的需求分析福州百度网站排名优化
  • 各大网站地区是怎样和做的网络推广主要是做什么工作
  • 家谱用网站做杭州搜索推广公司
  • 东莞网站建设设计服务营销理论
  • 深圳网站制作的公司哪家好中国站长之家域名查询
  • 襄阳网站排名优化中国唯一没有疫情的地方
  • 工信部icp备案官网企业网站seo排名
  • 办网站需流程8大营销工具
  • 珠海建网站多少钱win优化大师
  • 深圳网站关键词排名百度seo关键词排名优化软件
  • 兖州网站建设推广商丘网站seo