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

设计购物网站南宁码科网站建设

设计购物网站,南宁码科网站建设,淳安县住房和城乡建设局网站,哪里有门户网站开发公司OpenCV-Python中的图像处理-视频分析 视频分析Meanshift算法Camshift算法光流Lucas-Kanade Optical FlowDense Optical Flow 视频分析 学习使用 Meanshift 和 Camshift 算法在视频中找到并跟踪目标对象: Meanshift算法 Meanshift 算法的基本原理是和很简单的。假设我们有一堆… OpenCV-Python中的图像处理-视频分析 视频分析Meanshift算法Camshift算法光流Lucas-Kanade Optical FlowDense Optical Flow 视频分析 学习使用 Meanshift 和 Camshift 算法在视频中找到并跟踪目标对象: Meanshift算法 Meanshift 算法的基本原理是和很简单的。假设我们有一堆点比如直方 图反向投影得到的点和一个小的圆形窗口我们要完成的任务就是将这个窗 口移动到最大灰度密度处或者是点最多的地方。如下图所示 初始窗口是蓝色的“C1”它的圆心为蓝色方框“C1_o”而窗口中所有点质心却是“C1_r”(小的蓝色圆圈)很明显圆心和点的质心没有重合。所以移动圆心 C1_o 到质心 C1_r这样我们就得到了一个新的窗口。这时又可以找到新窗口内所有点的质心大多数情况下还是不重合的所以重复上面的操作将新窗口的中心移动到新的质心。就这样不停的迭代操作直到窗口的中心和其所包含点的质心重合为止或者有一点小误差。按照这样的操作我们的窗口最终会落在像素值和最大的地方。如上图所示“C2”是窗口的最后位址我们可以看出来这个窗口中的像素点最多。 要在 OpenCV 中使用 Meanshift 算法首先我们要对目标对象进行设置 计算目标对象的直方图这样在执行 meanshift 算法时我们就可以将目标对 象反向投影到每一帧中去了。另外我们还需要提供窗口的起始位置。在这里我 们值计算 H Hue通道的直方图同样为了避免低亮度造成的影响我们使 用函数 cv2.inRange() 将低亮度的值忽略掉。 import numpy as np import cv2 from matplotlib import pyplot as plt # 视频下载地址https://www.bogotobogo.com/python/OpenCV_Python/images/mean_shift_tracking/slow_traffic_small.mp4 cap cv2.VideoCapture(./resource/opencv/video/slow_traffic_small.mp4)ret,frame cap.read()# setup initial location of window x, y, w, h 300, 200, 100, 50 # simply hardcoded the values track_window (x, y, w, h)# set up the ROI for tracking roi frame[y:yh, x:xw]hsv_roi cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) mask cv2.inRange(hsv_roi, np.array((0., 60.,32.)), np.array((180.,255.,255.))) roi_hist cv2.calcHist([hsv_roi],[0],mask,[180],[0,180]) cv2.normalize(roi_hist,roi_hist,0,255,cv2.NORM_MINMAX)term_crit (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 1)while(1):ret, frame cap.read()if ret True:hsv cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)dst cv2.calcBackProject([hsv], [0], roi_hist, [0, 180], 1)ret, track_window cv2.meanShift(dst, track_window, term_crit)x,y,w,h track_windowimg2 cv2.rectangle(frame, (x,y), (xw, yh), 255, 2)k cv2.waitKey(60)0xFFif k 27:breakelse:cv2.imshow(img, img2)else:breakcap.release() cv2.destroyAllWindows()Camshift算法 与 Meanshift 基本一样但是返回的结果是一个带旋转角度的矩形以及这个矩形的参数被用到下一次迭代过程中。 import numpy as np import cv2 from matplotlib import pyplot as plt # 视频下载地址https://www.bogotobogo.com/python/OpenCV_Python/images/mean_shift_tracking/slow_traffic_small.mp4 cap cv2.VideoCapture(./resource/opencv/video/slow_traffic_small.mp4)# take first frame of the video ret, frame cap.read()# setup initial location of window x, y, w, h 300, 200, 100, 50 # simply hardcoded the values track_window (x, y, w, h) # set up the ROI for tracking roi frame[y:yh, x:xw] hsv_roi cv2.cvtColor(roi, cv2.COLOR_BGR2HSV) mask cv2.inRange(hsv_roi, np.array((0., 60.,32.)), np.array((180.,255.,255.))) roi_hist cv2.calcHist([hsv_roi],[0],mask,[180],[0,180]) cv2.normalize(roi_hist,roi_hist,0,255,cv2.NORM_MINMAX) # Setup the termination criteria, either 10 iteration or move by at least 1 pt term_crit ( cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 1 )while(1):ret, frame cap.read()if ret True:hsv cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)dst cv2.calcBackProject([hsv],[0],roi_hist,[0,180],1)# apply camshift to get the new locationret, track_window cv2.CamShift(dst, track_window, term_crit)# Draw it on imagepts cv2.boxPoints(ret)pts np.int0(pts)img2 cv2.polylines(frame,[pts],True, 255,2)k cv2.waitKey(30) 0xffif k 27:breakelse:cv2.imshow(img2,img2)else:cap.release()cv2.destroyAllWindows()光流 Lucas-Kanade Optical Flow 光流的概念以及 Lucas-Kanade 光流法函数 cv2.calcOpticalFlowPyrLK() 对图像中的特征点进行跟踪 import numpy as np import cv2cap cv2.VideoCapture(./resource/opencv/video/slow_traffic_small.mp4)# params for Shi-Tomasi corner detection feature_params dict(maxCorners 100,qualityLevel 0.3,minDistance 7,blockSize 7)# parameters for lucas kanade optical flow # maxLevel 为使用的图像金字塔层数 lk_params dict(winSize (15,15),maxLevel 2,criteria (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03)) # Create some random colors color np.random.randint(0, 255, (100, 3))# Take first frame and find corners in it ret, old_frame cap.read() old_gray cv2.cvtColor(old_frame, cv2.COLOR_BGR2GRAY) p0 cv2.goodFeaturesToTrack(old_gray, maskNone, **feature_params)# Create a mask image for drawing purposes mask np.zeros_like(old_frame)while(1):ret, frame cap.read()frame_gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# calculate optical flow 能够获取点的新位置p1, st, err cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params)# Select good pointsgood_new p1[st1]good_old p0[st1]# draw the tracksfor i,(new, old) in enumerate(zip(good_new, good_old)):a,b new.ravel()c,d old.ravel()mask cv2.line(mask, (int(a), int(b)), (int(c), int(d)), color[i].tolist(), 2)frame cv2.circle(frame, (int(a), int(b)), 5, color[i].tolist(), -1)img cv2.add(frame, mask)cv2.imshow(frame, img)k cv2.waitKey(30) 0xFFif k 27:breakold_gray frame_gray.copy()p0 good_new.reshape(-1, 1, 2)cv2.destroyAllWindows() cap.release()Dense Optical Flow import numpy as np import cv2 as cvcap cv.VideoCapture(./resource/opencv/video/vtest.avi) ret, frame1 cap.read() prvs cv.cvtColor(frame1, cv.COLOR_BGR2GRAY) hsv np.zeros_like(frame1) hsv[..., 1] 255 while(1):ret, frame2 cap.read()if not ret:print(No frames grabbed!)breaknext cv.cvtColor(frame2, cv.COLOR_BGR2GRAY)flow cv.calcOpticalFlowFarneback(prvs, next, None, 0.5, 3, 15, 3, 5, 1.2, 0)mag, ang cv.cartToPolar(flow[..., 0], flow[..., 1])hsv[..., 0] ang*180/np.pi/2hsv[..., 2] cv.normalize(mag, None, 0, 255, cv.NORM_MINMAX)bgr cv.cvtColor(hsv, cv.COLOR_HSV2BGR)cv.imshow(frame2, bgr)k cv.waitKey(30) 0xffif k 27:breakelif k ord(s):cv.imwrite(./resource/opencv/video/opticalfb.png, frame2)cv.imwrite(./resource/opencv/video/opticalhsv.png, bgr)prvs next cv.destroyAllWindows()
http://www.yayakq.cn/news/1730/

相关文章:

  • 宁波网站建设制作电话号码手机网站建站
  • 响应式设计网站手机百度免费下载
  • 有哪些网站做任务有佣金株洲网
  • 好网站范例淘宝客app定制
  • php禁止ip访问网站建站之星怎么安装
  • 做一个网站多少费用成都市网站建设服务商
  • qq空间做单页网站做响应式网站哪家好
  • asp企业网站模板营销型网站建设成为企业发展新趋势
  • 在线手机网站建设阿里云域名注册新人
  • 长清治做网站福州搜索优化公司
  • 常用网站开发工具有哪些wordpress+修改邮箱
  • 用户体验网站外贸公司的网站建设
  • 做网站需要跟客户了解什么软件asp.net 网站的头部和底部怎么来做 include
  • 重庆在线开放平台哈尔滨网络优化公司有哪些
  • 小视频网站源码厦门网络建站公司
  • 绿化公司和苗圃做网站自定义导航网站 源码
  • 微信小程序教程入门篇潮州网站seo
  • 苏州新海通网站建设丰都网站建设联系电话
  • 长沙模板建站平台网页设计模板素材图片简单
  • vps空间如何做网站备份电子网站大全
  • 做课件用这15大网站接外包活去什么平台
  • 网站开发哪个公司好旅游网站建设规范
  • 网站开发与管理能力网站维护排名
  • 网站开发html旅游电商网站建设方案
  • 站点和网站的区别网络设计是干什么的工作
  • 动态二维码制作网站推广优化之八大方法
  • 网站一级栏目个人宽带弄网站可以吗
  • 长春 网站 设计公司个人博客搭建
  • 做360手机网站优化排郑州市广告牌制作
  • 网站cname企业电商平台开发