2011-10-27 22 views
0

我試圖從使用Python中的OpenCV的視頻計算差分圖像速度不變量(例如,捲曲,發散,變形等)。爲此,我需要計算光流的x,y方向上的空間導數。不幸的是,OpenCV似乎只提供用於計算光流量的API,而不是其衍生產品。Python庫,用於計算光流的空間導數

是否有任何Python庫用於計算光流的空間派生?我發現這個問題有點類似Lucas Kanade Optical Flow, Direction Vector,有人編寫了用於計算空間衍生物的代碼,但如果可能的話,我會喜歡圖書館而不是自己編寫代碼。任何建議,將不勝感激!

+0

爲什麼自己寫代碼?將該人的代碼轉儲到一個文件夾中,添加一個'__init __。py'和'import'它。 – Blender

+0

這不是一個真正的庫......它也是一個自己寫的代碼:P – Magsol

+0

Python中的庫僅僅是一個包含Python文件的文件夾。另外,是不是計算光流的導數是一項相當簡單的任務?您只需要平滑數據,用一個多項式對其進行近似,然後對多項式進行微分。 – Blender

回答

0

這是我看到它的方式(我和光流一點點工作):

要計算光流場的個別偏導數;一個用於x方向,另一個用於y

我試圖解決這個問題,像這樣:

  • 分裂您的流陣列/矩陣成兩個矩陣:xy流。
  • 對於其中每一個,你可以走天真的路線,只是做一個簡單的區別:derivative = current_state - last_state。但是這種方法非常混亂,因爲衍生物對於最輕微的錯誤都是敏感的。
  • 爲了解決這個問題,你可以用一個很容易區分的迴歸曲線來近似一個數據點(也許是整行),就像多項式一樣。

只是區分近似曲線和你很好去。

你也可以只對單個矩陣進行平滑處理,並做一個幼稚的區別,它應該比近似數據點快得多,但應該更容忍錯誤。

+0

這一切都很有意義。我想我正在尋找的是高層直覺(擬合一個易於區分的多項式與數據)和執行該任務的代碼之間的概念聯繫。我發現scipy.signal庫似乎有我需要的,但現在我正在運行到Python TypeErrors。但是,這可能值得自己的問題。謝謝你的幫助!另外,愛Blender! :) – Magsol

+0

哈哈,沒問題。我喜歡這種東西。 – Blender