欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

opencv檢測動態(tài)物體的實現(xiàn)

 更新時間:2021年07月19日 15:51:11   作者:滑稽研究所  
本文主要介紹了opencv檢測動態(tài)物體的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

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

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

  源代碼:

import cv2
import time
import numpy as np

def videos():
    cap = cv2.VideoCapture(1)
    #不設(shè)置是默認(rèn)640*480,我們這里設(shè)置出來
    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:
            # 這里是由于第一幀圖片沒有前一幀
            previous = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        gray_diff = cv2.absdiff(gray, previous)  # 計算絕對值差
        # 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("動",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)有物體經(jīng)過窗口時,控制臺打印出了時間。這樣便于我們在錄制好的視頻內(nèi)查找。

在這里插入圖片描述

在這里插入圖片描述

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

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

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

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

相關(guān)文章

  • python @property的用法及含義全面解析

    python @property的用法及含義全面解析

    下面小編就為大家分享一篇python @property的用法及含義全面解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • PyTorch數(shù)據(jù)讀取的實現(xiàn)示例

    PyTorch數(shù)據(jù)讀取的實現(xiàn)示例

    這篇文章主要介紹了PyTorch數(shù)據(jù)讀取的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python連接數(shù)據(jù)庫后通過占位符添加數(shù)據(jù)

    python連接數(shù)據(jù)庫后通過占位符添加數(shù)據(jù)

    在pymysql中支持對占位符的處理,開發(fā)者需要在SQL中使用“%”定義占位符,在使用excute()方法執(zhí)行時對占位符的數(shù)據(jù)進(jìn)行填充即可,本文給大家介紹python連接數(shù)據(jù)庫后通過占位符添加數(shù)據(jù)的方法,需要的朋友參考下吧
    2021-12-12
  • python通過socket實現(xiàn)多個連接并實現(xiàn)ssh功能詳解

    python通過socket實現(xiàn)多個連接并實現(xiàn)ssh功能詳解

    這篇文章主要介紹了python通過socket實現(xiàn)多個連接并實現(xiàn)ssh功能詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • python 實現(xiàn)按對象傳值

    python 實現(xiàn)按對象傳值

    今天小編就為大家分享一篇python 實現(xiàn)按對象傳值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python?JMESPath庫輕松操作JSON進(jìn)行數(shù)據(jù)查詢方法實例

    Python?JMESPath庫輕松操作JSON進(jìn)行數(shù)據(jù)查詢方法實例

    這篇文章主要為大家介紹了Python?JMESPath庫輕松操作JSON方法實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Django Admin實現(xiàn)三級聯(lián)動的示例代碼(省市區(qū))

    Django Admin實現(xiàn)三級聯(lián)動的示例代碼(省市區(qū))

    多級菜單在很多上面都有應(yīng)用,這篇文章主要介紹了Django Admin實現(xiàn)三級聯(lián)動(省市區(qū)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • python將xml xsl文件生成html文件存儲示例講解

    python將xml xsl文件生成html文件存儲示例講解

    這篇文章主要介紹了python將xml、xsl文件轉(zhuǎn)成html文件存儲方法,大家參考使用吧
    2013-12-12
  • PyQt5中向單元格添加控件的方法示例

    PyQt5中向單元格添加控件的方法示例

    這篇文章主要介紹了PyQt5中向單元格添加控件的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 五個有趣的Python整蠱小程序合集

    五個有趣的Python整蠱小程序合集

    Python 能做很多無聊,但有意思的事情。本文為大家精心準(zhǔn)備了五個整蠱朋友的小程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴快動手試一試
    2022-04-04

最新評論