人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

opencv檢測(cè)動(dòng)態(tài)物體的實(shí)現(xiàn)

發(fā)布日期:2022-02-23 08:52 | 文章來(lái)源:源碼之家

之前我在超市看到當(dāng)有物體經(jīng)過(guò)時(shí),監(jiān)控的屏幕邊緣會(huì)出現(xiàn)綠框。感覺(jué)蠻有意思的。來(lái)用opencv試試能不能實(shí)現(xiàn)類(lèi)似的效果。

  我采用的檢測(cè)動(dòng)態(tài)物體的方法是,比較前后兩幀圖像,即當(dāng)前畫(huà)面與上一幀的畫(huà)面出現(xiàn)了不同。我們把兩幀畫(huà)面進(jìn)行比較。然后框選出運(yùn)動(dòng)的物體。我們還希望程序可以判斷當(dāng)前窗口到底有沒(méi)有物體在運(yùn)動(dòng)。那么我們就需要添加一個(gè)狀態(tài)。為了方便我們找到什么時(shí)間有物體移動(dòng),我打印出時(shí)間。

  當(dāng)我們的程序檢測(cè)到移動(dòng)的物體時(shí),會(huì)捕捉到它的輪廓,添加一個(gè)外接整矩形框,返回x,y的坐標(biāo)。當(dāng)不返回坐標(biāo)時(shí),則意味著沒(méi)有物體運(yùn)動(dòng),我們通過(guò)坐標(biāo)值來(lái)是否有物體移動(dòng)。并打印出當(dāng)時(shí)的本地時(shí)間。

  源代碼:

import cv2
import time
import numpy as np
def videos():
 cap = cv2.VideoCapture(1)
 #不設(shè)置是默認(rèn)640*480,我們這里設(shè)置出來(lái)
 cap.set(3, 640)
 cap.set(4, 480)
 img_num = 0
 k = np.ones((3, 3), np.uint8)
 while True:
  success, img = cap.read()
  localtime = time.asctime(time.localtime(time.time()))
  if not img_num:
# 這里是由于第一幀圖片沒(méi)有前一幀
previous = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  gray_diff = cv2.absdiff(gray, previous)  # 計(jì)算絕對(duì)值差
  # previous 是上一幀圖片的灰度圖
  thresh = cv2.threshold(gray_diff, 40, 255, cv2.THRESH_BINARY)[1]
  mask = cv2.medianBlur(thresh, 3)
  close = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, k)
  cnts = cv2.findContours(close,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)[0]
  for c in cnts:
area = cv2.contourArea(c)
if area > 50:
 x, y, w, h = cv2.boundingRect(c)
 cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
 if x>0:
  print("動(dòng)",localtime)
  cv2.putText(img, localtime, (30, 30), cv2.FONT_HERSHEY_COMPLEX, 0.7, (0, 0, 255), 2)
  cv2.imshow("x", close)
  cv2.imshow("Result", img)
  img_num += 1
  if cv2.waitKey(1) & 0xFF == ord('q'):
break
videos()

  靜:


  動(dòng):

  當(dāng)有物體經(jīng)過(guò)窗口時(shí),控制臺(tái)打印出了時(shí)間。這樣便于我們?cè)阡浿坪玫囊曨l內(nèi)查找。


 為了方便,我在窗口左上角加入了時(shí)間和日期。

**注意!**必須把
localtime = time.asctime(time.localtime(time.time()))
放入主循環(huán)內(nèi),否則只返回調(diào)用的一瞬間的本地時(shí)間,不會(huì)程序持續(xù)。
也不可以使用time.sleep()來(lái)控制時(shí)間變化,這會(huì)影響我們視頻的幀率

  這個(gè)方法的弊端是當(dāng)環(huán)境光線亮度變化過(guò)大時(shí),返回的輪廓會(huì)產(chǎn)生變化,導(dǎo)致程序判斷整個(gè)屏幕都在運(yùn)動(dòng),這點(diǎn)仍需改進(jìn)。

到此這篇關(guān)于opencv檢測(cè)動(dòng)態(tài)物體的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)opencv檢測(cè)動(dòng)態(tài)物體內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

香港服務(wù)器租用

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專(zhuān)屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部