天天看點

python opencv 運動檢測人體跳動_python opencv實作運動檢測

此文執行個體給親們分享了python opencv運動檢測的具體代碼,供大家參考,具體内容如下

# -*- coding:utf-8 -*-

__author__ = 'kingking'

__version__ = '1.0'

__date__ = '14/07/2017'

import cv2

import numpy as np

import time

camera = cv2.VideoCapture(0) # 參數0表示第一個攝像頭

# 判斷視訊是否打開

if (camera.isOpened()):

print('Open')

else:

print('攝像頭未打開')

background = cv2.imread('img.png',0)#讀入一幅圖像

es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (9, 4))

while True:

# 按'q'健退出循環

key = cv2.waitKey(1) & 0xFF

# 讀取視訊流

grabbed, img = camera.read()

gray1 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

gray = cv2.GaussianBlur(gray1, (21, 21), 0)#可在這添加處理程式

#!!!等相機穩定後按下W選擇背景

if key == ord('w'):

background = gray

print '背景已標明'

diff = cv2.absdiff(gray, background)

binary = cv2.threshold(diff, 25, 255, cv2.THRESH_BINARY)[1]#二值化門檻值處理

dilation = cv2.dilate(binary, es, iterations=2) # 形态學膨脹

contours, hierarchy = cv2.findContours(dilation.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(img, (x, y), (x+w, y+h), (0, 255, 0), 2)

cv2.imshow('img', img)

cv2.imshow('dilation', dilation)

if key == ord('q'):

break

camera.release()#ubuntu一定要釋放相機資源否則要重新開機才能再次使用

cv2.destroyAllWindows()

上面即是這篇文章的内容,希望對各位的學習有所啟發,也希望大家多多支援學貓線上(shtml.net)。

本文來源:https://blog.csdn.net/Lingdongtianxia/article/details/75210351