2010-08-22 38 views
1

我正在模擬熱像儀效果。我在一場聚會上指着人牆前的攝像頭。我去背景減法技術,並使用Aforge blobcounter我得到我想填補梯度着色斑點。我的問題= GetBlobsEdgePoints不返回排序的點雲,所以我不能使用它,例如,來自GDI +的PathGradientBrush只是繪製漸變。用aforge或任何其他.net解決方案來僞裝熱像儀,emgucv,tbeta

  1. 我正在尋找簡單,快速的算法來追蹤斑點到路徑(可以犯錯誤)。
  2. 一種跟蹤blobcounter收到的斑點的方法。
  3. 建議使用其他方式來模擬效果。

我簡單瀏覽了一下Emgu.CV.VideoSurveillance但沒有得到它的工作(例子是v1.5和我V2 +去),但我放棄了,因爲有人說這是在論壇上緩慢。

感謝您的閱讀。 aforge背景去除

  Bitmap bmp =(Bitmap)e.VideoFrame.Clone(); 
     if (backGroundFrame == null) 
     { 
      backGroundFrame = (Bitmap)e.VideoFrame.Clone(); 
      difference.OverlayImage = backGroundFrame; 
     } 

     difference.ApplyInPlace(bmp); 
     bmp = grayscale.Apply(bmp); 
     threshold.ApplyInPlace(bmp); 

回答

0

這是我要去採取的方向(最好看現在):

  1. 我自己定義的邏輯上的一組BLOB點(皮膚斑點的顏色應該是溫暖等。 )圍繞的那些點

      GraphicsPath gp=new GraphicsPath(); 
          var rect = new Rectangle(CircumferencePoint.X - radius, CircumferencePoint.Y - radius, radius*2, radius*2); 
          gp.AddEllipse(rect); 
          GradientShaper = new PathGradientBrush(gp); 
          GradientShaper.CenterColor = Color.White; 
          GradientShaper.SurroundColors = surroundingColors; 
          drawBmp.FillPath(GradientShaper,gp); 
    
  2. 拉伸梯度掩蔽與斑點形狀的那些梯度

      blobCounter.ExtractBlobsImage(bmp,blob,true); 
          mask.OverlayImage = blob.Image; 
          mask.ApplyInPlace(rslt); 
    
  3. 着色顏色重映射

TNX的幫助@Albin

1

示例代碼,你可以發佈GetBlobsEdgePoints結果的一些樣本圖像,那麼它可能是更容易理解,如果什麼類型需要的圖像處理算法。 1)你可以嘗試一種貪婪算法,首先隨機挑選一個點,將該點標記爲「已取得」,挑選未標記爲「已取得」的最近點等等。
您需要找到合適的終止條件。如果可能存在多條不相交的路徑,則需要找出多少遠點需要成爲分離路徑的一部分的定義。 3)如果你有一個靜態背景,你可以嘗試創建兩個時移圖像之間的差異,如200毫秒的差異。只需逐像素差異,並使用abs(diff)作爲熱圖表中的索引。這將更像移動物體的邊緣發光效果。

+0

1.我不知道這樣的算法將是一些不錯的FPS足夠接近?什麼是終止條件?取兩點之間的每個第n個像素,看看有沒有圖像? 2.我添加了一些我刪除背景的方式的代碼。問題是我需要用顏色地圖繪製沒有邊緣的人,儘管我確信你的想法會產生很好的效果:) – tomato 2010-08-22 14:59:48

+0

1.速度取決於你有多少點,複雜度是O(n^2),對於100分左右,對於可能有麻煩的1000分是相當合理的。然後,您可能需要一個網格,也許25x25的方塊,並開始在與最後一個點相同的網格中找到衣櫃點,如果最近的點與邊緣太靠近,則在相鄰的網格中查找。 – 2010-08-22 15:10:41

+0

好吧,其實我現在有點看着不同的解決方案,我會在假設它是一個人(頭部和手部)的blob上繪製假放射漸變點,並且只是使用getblobimage方法來掩蓋它。 – tomato 2010-08-22 15:26:56

相關問題