使用OpenCV+Python構建運動熱圖視頻
OpenCV是一個強大的圖像和視頻處理庫,在這篇文章中,我將創(chuàng)建一個運動熱圖,用于檢測運動、以及物體或人的流動方向,在投影公共區(qū)域時可以對建筑師有所幫助。

簡介
OpenCV,或(開源計算機視覺)是英特爾于1999年開發(fā)的一個庫,主要提供計算機視覺和實時視頻的相關操作,它是用C++編寫的,同時也支持多種其它語言(包括Python)。工作流程這個程序是基于一種被稱為高斯背景差法的技術,這項技術被廣泛應用于用穩(wěn)定的攝像機檢測運動物體。背景差法創(chuàng)建一個表示幀(圖像的靜態(tài)部分)背景的模板,對于每一幀,它將減去前一幀。讓我們對該算法的兩個主要步驟進行一個簡要概述:背景初始化:在第一步中,通過凍結第一幀來計算背景的模型。更新:在第二步中,下一幀將減去上一幀,如果兩幀之間發(fā)生變化(移動),則這些幀的差異將反映出該變化,可以通過應用過濾器來進行提取差異信息。以下是背景差法應用于從城市攝像機錄制的短視頻的示例:

代碼對于整個項目存儲庫,在此處可以獲取。https://github.com/robertosannazzaro/motion-h(huán)eatmap-opencv/blob/master/README.md代碼首先讀取輸入的視頻文件并初始化所需的一些變量:capture = cv2.VideoCapture('input.mp4')background_subtractor = cv2.bgsegm.createBackgroundSubtractorMOG()length = int(capture.get(cv2.CAP_PROP_FRAME_COUNT))然后,for循環(huán)遍歷視頻幀:for i in range(0, length):
ret, frame = capture.read()
# If first frame if first_iteration_indicator == 1:
first_frame = copy.deepcopy(frame) height, width = frame.shape[:2] accum_image = np.zeros((height, width), np.uint8)
第一個if塊檢查該幀是否為視頻的第一幀,這樣做是為了初始化背景差法的背景,然后accum_image使用與該幀大小相對應的大小來初始化該數(shù)組。
filter = background_subtractor.a(chǎn)pply(frame) # remove the background
threshold = 2maxValue = 2ret, th1 = cv2.threshold(filter, threshold, maxValue, cv2.THRESH_BINARY)
accum_image = cv2.a(chǎn)dd(accum_image, th1)
color_image_video = cv2.a(chǎn)pplyColorMap(accum_image, cv2.COLORMAP_HOT)
為了消除例如風,小鳥飛行等少量運動,將閾值與maxValue一起應用到遮罩上。然后將掩碼的結果添加到accum_image數(shù)組中,對每個幀執(zhí)行此操作,結果由用于存儲視頻中發(fā)生的每個運動的accum_image數(shù)組組成。此外,在最后,當已經(jīng)對每個幀執(zhí)行了先前描述的操作時,顏色映射被應用于遮罩并且遮罩與當前幀合并。

更進一步,可以制作一個顯示熱圖逐幀衰減的視頻。為了實現(xiàn)這一點,將導出每個幀,然后再次使用cv2,通過合并所有幀來生成視頻:video = cv2.VideoWriter('output.a(chǎn)vi', fourcc, 30.0, (width, height))for image in images: video.write(cv2.imread(os.path.join(image_folder, image)))
cv2.destroyAllWindows()最后結果

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
- 1 AI狂歡遇上油價破百,全球股市還能漲多久? | 產(chǎn)聯(lián)看全球
- 2 OpenAI深夜王炸!ChatGPT Images 2.0實測:中文穩(wěn)、細節(jié)炸,設計師慌了
- 3 6000億美元估值錨定:字節(jié)跳動的“去單一化”突圍與估值重構
- 4 Tesla AI5芯片最新進展總結
- 5 連夜測了一波DeepSeek-V4,我發(fā)現(xiàn)它可能只剩“審美”這個短板了
- 6 熱點丨AI“瑜亮之爭”:既生OpenClaw,何生Hermes?
- 7 AI界的殺豬盤:9秒刪庫跑路,全員被封號,還繼續(xù)扣錢!
- 8 2026,人形機器人只贏了面子
- 9 DeepSeek降價90%:價格屠夫不是身份,是戰(zhàn)略
- 10 AI Infra產(chǎn)業(yè)鏈卡在哪里了?
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結構工程師 廣東省/深圳市


分享













