最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

運(yùn)動(dòng)檢測ViBe算法python實(shí)現(xiàn)代碼

 更新時(shí)間:2018年01月09日 11:17:12   作者:孤獨(dú)de雨  
這篇文章主要為大家詳細(xì)介紹了運(yùn)動(dòng)檢測ViBe算法python實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

運(yùn)動(dòng)物體檢測一般分為背景建模和運(yùn)動(dòng)物體分析兩步。即構(gòu)建不包含運(yùn)動(dòng)物體的背景模型。然后將新的視頻幀和背景模型對(duì)比,找出其中的運(yùn)動(dòng)物體。目前比較好的背景建模算法有兩種:1)文章(Zivkovic Z. (2004) Improved adaptive Gausianmixture model for  backgroundsubtraction, Proceedings of ICPR 2004, August 23-26, Cambridge, UK.)提出的高斯混合模型法。在此算法中,背景的每一個(gè)像素都被擬合到一個(gè)高斯混合模型。對(duì)于新的圖片,只需要判斷每個(gè)像素是否服從這個(gè)高斯混合模型就可以判斷出這個(gè)像素是背景還是前景。但混合高斯算法的缺點(diǎn)是計(jì)算量相對(duì)比較大,速度偏慢,對(duì)光照敏感。2)文章(ViBe: A universal backgroundsubtraction algorithm for video sequences.)提出的ViBe算法。該算法速度非常快,計(jì)算量比較小,而且對(duì)噪聲有一定的魯棒性,檢測效果不錯(cuò)。

由于最近在做一些跟蹤檢查的研究,就用到了ViBe算法,根據(jù)網(wǎng)上的c++版本編寫了這個(gè)python版的算法,在這分享給大家。

class ViBe: 
 ''''' 
 classdocs 
 ''' 
 __defaultNbSamples = 20  #每個(gè)像素點(diǎn)的樣本個(gè)數(shù) 
 __defaultReqMatches = 2  #min指數(shù) 
 __defaultRadius = 20;   #Sqthere半徑 
 __defaultSubsamplingFactor = 16#子采樣概率 
 __BG = 0      #背景像素 
 __FG = 255      #前景像素 
 __c_xoff=[-1,0,1,-1,1,-1,0,1,0] #x的鄰居點(diǎn) len=9 
 __c_yoff=[-1,0,1,-1,1,-1,0,1,0] #y的鄰居點(diǎn) len=9 
  
 __samples=[]    #保存每個(gè)像素點(diǎn)的樣本值,len defaultNbSamples+1 
 __Height = 0 
 __Width = 0 
 
 def __init__(self, grayFrame): 
  ''''' 
  Constructor 
  ''' 
  self.__Height = grayFrame.shape[0] 
  self.__Width = grayFrame.shape[1] 
   
 
  for i in range(self.__defaultNbSamples+1): 
   self.__samples.insert(i,np.zeros((grayFrame.shape[0],grayFrame.shape[1]),dtype=grayFrame.dtype)); 
    
  self.__init_params(grayFrame) 
  
 def __init_params(self,grayFrame): 
  #記錄隨機(jī)生成的 行(r) 和 列(c) 
  rand=0 
  r=0 
  c=0 
 
  #對(duì)每個(gè)像素樣本進(jìn)行初始化 
  for y in range(self.__Height): 
   for x in range(self.__Width): 
    for k in range(self.__defaultNbSamples): 
     #隨機(jī)獲取像素樣本值 
     rand=random.randint(0,8) 
     r=y+self.__c_yoff[rand] 
     if r<0: 
      r=0 
     if r>=self.__Height: 
      r=self.__Height-1 #行 
     c=x+self.__c_xoff[rand] 
     if c<0: 
      c=0 
     if c>=self.__Width: 
      c=self.__Width-1  #列 
     #存儲(chǔ)像素樣本值 
     self.__samples[k][y,x] = grayFrame[r,c] 
   self.__samples[self.__defaultNbSamples][y,x] = 0 
    
 def update(self,grayFrame,frameNo): 
  foreground = np.zeros((self.__Height,self.__Width),dtype=np.uint8) 
  for y in range(self.__Height): #Height 
   for x in range(self.__Width):  #Width 
    #用于判斷一個(gè)點(diǎn)是否是背景點(diǎn),index記錄已比較的樣本個(gè)數(shù),count表示匹配的樣本個(gè)數(shù) 
    count=0;index=0; 
    dist=0.0; 
    while (count<self.__defaultReqMatches) and (index<self.__defaultNbSamples): 
     dist= float(grayFrame[y,x]) - float(self.__samples[index][y,x]); 
     if dist<0: dist=-dist 
     if dist<self.__defaultRadius: count = count+1 
     index = index+1 
 
    if count>=self.__defaultReqMatches: 
     #判斷為背景像素,只有背景點(diǎn)才能被用來傳播和更新存儲(chǔ)樣本值 
     self.__samples[self.__defaultNbSamples][y,x]=0 
  
     foreground[y,x] = self.__BG 
  
     rand=random.randint(0,self.__defaultSubsamplingFactor) 
     if rand==0: 
      rand=random.randint(0,self.__defaultNbSamples) 
      self.__samples[rand][y,x]=grayFrame[y,x] 
     rand=random.randint(0,self.__defaultSubsamplingFactor) 
     if rand==0: 
      rand=random.randint(0,8) 
      yN=y+self.__c_yoff[rand] 
      if yN<0: yN=0 
      if yN>=self.__Height: yN=self.__Height-1 
      rand=random.randint(0,8) 
      xN=x+self.__c_xoff[rand] 
      if xN<0: xN=0 
      if xN>=self.__Width: xN=self.__Width-1 
      rand=random.randint(0,self.__defaultNbSamples) 
      self.__samples[rand][yN,xN]=grayFrame[y,x] 
    else: 
     #判斷為前景像素 
     foreground[y,x] = self.__FG; 
     self.__samples[self.__defaultNbSamples][y,x] += 1 
     if self.__samples[self.__defaultNbSamples][y,x]>50: 
      rand=random.randint(0,self.__defaultNbSamples) 
      if rand==0: 
       rand=random.randint(0,self.__defaultNbSamples) 
       self.__samples[rand][y,x]=grayFrame[y,x] 
  return foreground 

我做的魚的跟蹤效果圖

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pandas對(duì)齊運(yùn)算的實(shí)現(xiàn)示例

    pandas對(duì)齊運(yùn)算的實(shí)現(xiàn)示例

    本文主要介紹了pandas對(duì)齊運(yùn)算的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • python中元類用法實(shí)例

    python中元類用法實(shí)例

    這篇文章主要介紹了python中元類用法實(shí)例,對(duì)于學(xué)習(xí)Python有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10
  • PyQt5下拉式復(fù)選框QComboCheckBox的實(shí)例

    PyQt5下拉式復(fù)選框QComboCheckBox的實(shí)例

    今天小編就為大家分享一篇PyQt5下拉式復(fù)選框QComboCheckBox的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • tensorflow2.0如何實(shí)現(xiàn)cnn的圖像識(shí)別

    tensorflow2.0如何實(shí)現(xiàn)cnn的圖像識(shí)別

    這篇文章主要介紹了tensorflow2.0如何實(shí)現(xiàn)cnn的圖像識(shí)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python使用BeautifulSoup分頁網(wǎng)頁中超鏈接的方法

    python使用BeautifulSoup分頁網(wǎng)頁中超鏈接的方法

    這篇文章主要介紹了python使用BeautifulSoup分頁網(wǎng)頁中超鏈接的方法,涉及Python使用BeautifulSoup模塊操作網(wǎng)頁鏈接的技巧,需要的朋友可以參考下
    2015-04-04
  • Python NumPy教程之遍歷數(shù)組詳解

    Python NumPy教程之遍歷數(shù)組詳解

    這篇文章主要為大家詳細(xì)介紹了Python?NumPy中遍歷數(shù)組的方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-08-08
  • python3實(shí)現(xiàn)倒計(jì)時(shí)效果

    python3實(shí)現(xiàn)倒計(jì)時(shí)效果

    這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)倒計(jì)時(shí)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Python中斷多重循環(huán)的幾種方法

    Python中斷多重循環(huán)的幾種方法

    跳出單循環(huán)不管是什么編程語言,都有可能會(huì)有跳出循環(huán)的需求,本文主要介紹了Python中斷多重循環(huán)的幾種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Numpy中np.newaxis的作用和用法小結(jié)

    Numpy中np.newaxis的作用和用法小結(jié)

    np.newaxis常常用于將一個(gè)一維數(shù)組轉(zhuǎn)化為二維數(shù)組,本文就來介紹一下Numpy中np.newaxis的作用和用法小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • python庫skimage給灰度圖像染色的方法示例

    python庫skimage給灰度圖像染色的方法示例

    這篇文章主要介紹了python庫skimage給灰度圖像染色的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評(píng)論

黎城县| 甘泉县| 左贡县| 攀枝花市| 柘城县| 阜新市| 宾阳县| 夏邑县| 宕昌县| 琼海市| 丰镇市| 新疆| 自治县| 白河县| 长治市| 铜川市| 峨眉山市| 清远市| 义马市| 寿光市| 苏尼特右旗| 南阳市| 丽水市| 历史| 连南| 安仁县| 揭东县| 汉沽区| 冷水江市| 昌图县| 桂阳县| 英吉沙县| 峨山| 齐河县| 宣威市| 遵化市| 夏津县| 武胜县| 丰城市| 通渭县| 石楼县|