2013-03-20 70 views
1

我會爲從Parrot Ar Drone獲得的視頻幀中的檢測對象編寫Android應用程序。當模型包含無人機狀態(如果正在飛行,新的視頻幀,導航數據等)時,我選擇使用MVC模式來達到此目的。適用於Android應用程序的MVC邏輯

對於檢測對象(具體球)我決定過濾對象的色調值的圖像來檢測,然後應用OpenCV的Huogh Circle Transform。 爲獲得應用色相過濾器的顏色,我將創建一個校準活動,計算無人機相機前面物體的直方圖,並且當按下按鈕時,此直方圖將設置在模型中,並且新的活動(所以一個可視化對象的新視圖,我們稱之爲檢測視圖)開始。

我在哪裏必須調整直方圖?在視圖中,從無人機到達新的視頻幀時,通過從模型或模型中獲取視頻幀?

而且我必須運行檢測算法?在檢測視圖中還是在模型中?

回答

0

通常,您可以將您的活動稱爲MVC中的「控制」層。 您希望將活動(和片段)中的邏輯控制在最低程度,因爲雖然活動和片段可作爲一個整體重新使用,但其內部的部分邏輯卻不是。

計算,如檢測圖像或視頻中的對象,我不會放入模型對象,因爲它應該更像是一個POJO,只是堅持數據。 我個人會爲此創建一些Util類,它將在您的Model層中表現爲一個類。

重新計算成自定義可視化,聽起來更像是自定義視圖。 該視圖可以具有邏輯,但只有用於呈現自身的邏輯。所有數據都應該提供給它,而不是提取。真正的邏輯應該是視圖繪製本身。