CV | 运动目标检测 之 背景差分法
生活随笔
收集整理的這篇文章主要介紹了
CV | 运动目标检测 之 背景差分法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
簡介
最近開始上手運動目標檢測和跟蹤,對于傳統(tǒng)的目標檢測算法比如幀差法、背景差分法、光流法之類的,從理論上學習了無數(shù)次,但是從來沒有見到過程序長什么樣。導致學一遍忘一遍。準備把這幾類方法和程序歸納和學習一下,好記性不如爛筆頭,有備無患。
背景差分法
轉(zhuǎn)自:https://www.jianshu.com/p/58c6ca1b66af
1. 原理
背景差分法的思想是用圖像序列中的當前幀和背景參考模型比較來檢測運動物體。其核心是背景的建模方法。這里實現(xiàn)一種簡單的背景建模方法,即對視頻的全部幀取像素平均值得到背景。
當然,這種簡單的算法局限性很大,視頻的時長,光線與背景的變化都會對檢測效果產(chǎn)生極大的影響。
2. 實現(xiàn)步驟
- 背景建模: 對視頻的全部幀取像素平均值得到背景
- 比較: 當前幀與背景做差,差值大于一定閾值的像素點識別為前景
- 提取:在原始幀上扣取出前景
3. 源代碼
import matplotlib.pyplot as plt import numpy as np from PIL import Image# 讀取幀數(shù) img_number = 48# 各幀的集合 all_img = [np.array(Image.open('F:/input/'+str(i+1)+'.jpg', 'r')) for i in range(img_number)]# 幀的寬高 h = all_img[0].shape[0] v = all_img[0].shape[1]# 計算得到背景 back_img = np.zeros((h, v)) for single_img in all_img:back_img += single_img back_img /= img_number# 保存背景 Image.fromarray(back_img).convert('RGB').save('F:/output/background.jpg')# 原視頻與背景逐幀相減后取絕對值 得到前景 front_img = np.array([i - back_img for i in all_img]) front_img = front_img.__abs__()# 前景二值化 設(shè)定閾值將前景像素值化為0或1 threshold_level = 50 threshold = np.full((h, v), threshold_level) front_img = np.array([i < threshold for i in front_img], dtype=np.int8)*255# 在原幀上摳圖 得到真實的前景 front_img = np.fmax(np.array(front_img), all_img)# 保存 for i in range(img_number):Image.fromarray(front_img[i]).convert('RGB').save('F:/output/'+str(i+1)+'.jpg')# 顯示 loc_h = 6 loc_v = int(img_number / loc_h) for i in range(loc_h * loc_v):plt.subplot(loc_v, loc_h, i+1)plt.imshow(front_img[i], cmap='gray') plt.show()視頻轉(zhuǎn)為圖像是使用matlab實現(xiàn)的。
%將視頻轉(zhuǎn)換為圖片 clear clcfile_name = 'F:\input.avi'; %視頻所在文件夾 obj = VideoReader(file_name); %讀取視頻文件numFrames = obj.NumberOfFrames; %視頻總的幀數(shù) for k = 1: numFramesframe = read(obj,k);%imshow(frame); gray_frame = rgb2gray(frame); %若每一幀為彩色圖片,轉(zhuǎn)換為灰度圖imshow(frame); %顯示每一幀圖片%保存每一幀圖片imwrite(gray_frame,strcat('F:\input\',num2str(k),'.jpg'),'jpg'); end總結(jié)
以上是生活随笔為你收集整理的CV | 运动目标检测 之 背景差分法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做人做事的艺术html,低姿态做人做事的
- 下一篇: 计算机基础做表格,表格的制作计算机基础.