国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python+OpenCV目標跟蹤實現基本的運動檢測

2020-02-15 22:19:45
字體:
來源:轉載
供稿:網友

目標跟蹤是對攝像頭視頻中的移動目標進行定位的過程,有著非常廣泛的應用。實時目標跟蹤是許多計算機視覺應用的重要任務,如監控、基于感知的用戶界面、增強現實、基于對象的視頻壓縮以及輔助駕駛等。

有很多實現視頻目標跟蹤的方法,當跟蹤所有移動目標時,幀之間的差異會變的有用;當跟蹤視頻中移動的手時,基于皮膚顏色的均值漂移方法是最好的解決方案;當知道跟蹤對象的一方面時,模板匹配是不錯的技術。

本文代碼是做一個基本的運動檢測

考慮的是“背景幀”與其它幀之間的差異

這種方法檢測結果還是挺不錯的,但是需要提前設置背景幀,如果是在室外,光線的變化就會引起誤檢測,還是很有局限性的。

import cv2import numpy as npcamera = cv2.VideoCapture(0) # 參數0表示第一個攝像頭# 判斷視頻是否打開if (camera.isOpened()):  print('Open')else:  print('攝像頭未打開')# 測試用,查看視頻sizesize = (int(camera.get(cv2.CAP_PROP_FRAME_WIDTH)),    int(camera.get(cv2.CAP_PROP_FRAME_HEIGHT)))print('size:'+repr(size))es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (9, 4))kernel = np.ones((5, 5), np.uint8)background = Nonewhile True:  # 讀取視頻流  grabbed, frame_lwpCV = camera.read()  # 對幀進行預處理,先轉灰度圖,再進行高斯濾波。  # 用高斯濾波進行模糊處理,進行處理的原因:每個輸入的視頻都會因自然震動、光照變化或者攝像頭本身等原因而產生噪聲。對噪聲進行平滑是為了避免在運動和跟蹤時將其檢測出來。  gray_lwpCV = cv2.cvtColor(frame_lwpCV, cv2.COLOR_BGR2GRAY)  gray_lwpCV = cv2.GaussianBlur(gray_lwpCV, (21, 21), 0)  # 將第一幀設置為整個輸入的背景  if background is None:    background = gray_lwpCV    continue  # 對于每個從背景之后讀取的幀都會計算其與北京之間的差異,并得到一個差分圖(different map)。  # 還需要應用閾值來得到一幅黑白圖像,并通過下面代碼來膨脹(dilate)圖像,從而對孔(hole)和缺陷(imperfection)進行歸一化處理  diff = cv2.absdiff(background, gray_lwpCV)  diff = cv2.threshold(diff, 25, 255, cv2.THRESH_BINARY)[1] # 二值化閾值處理  diff = cv2.dilate(diff, es, iterations=2) # 形態學膨脹  # 顯示矩形框  image, contours, hierarchy = cv2.findContours(diff.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 該函數計算一幅圖像中目標的輪廓  for c in contours:    if cv2.contourArea(c) < 1500: # 對于矩形區域,只顯示大于給定閾值的輪廓,所以一些微小的變化不會顯示。對于光照不變和噪聲低的攝像頭可不設定輪廓最小尺寸的閾值      continue    (x, y, w, h) = cv2.boundingRect(c) # 該函數計算矩形的邊界框    cv2.rectangle(frame_lwpCV, (x, y), (x+w, y+h), (0, 255, 0), 2)  cv2.imshow('contours', frame_lwpCV)  cv2.imshow('dis', diff)  key = cv2.waitKey(1) & 0xFF  # 按'q'健退出循環  if key == ord('q'):    break# When everything done, release the capturecamera.release()cv2.destroyAllWindows()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西充县| 准格尔旗| 太湖县| 宁阳县| 武宣县| 永仁县| 永州市| 莒南县| 怀柔区| 登封市| 大洼县| 易门县| 贵溪市| 张家港市| 桑植县| 县级市| 乌拉特后旗| 定西市| 富锦市| 榕江县| 元阳县| 榆树市| 武强县| 潮安县| 太仆寺旗| 金秀| 永新县| 年辖:市辖区| 汝城县| 开鲁县| 双峰县| 潞城市| 台北市| 阳原县| 冀州市| 英德市| 桐乡市| 遵义县| 墨玉县| 泊头市| 微山县|