我的問題可以在兩個不同的方面提出:一個是從數據結構的角度來看,另一個是從圖像處理的角度。讓我們從數據結構的角度開始:現在假設我有一個幾個小的項目,如以下類組成成分示出了:如何爲搜索應用程序找到正確的數據結構?
class Component
{
public:
struct Point
{
float x_;
float y_;
};
Point center;
Point bottom;
Point top;
}
在上述例子中,Component類是由成員變量如中心,底部的和頂部(小物品)。
現在我有一堆組件(組件數量在1000到10000之間),並且堆棧中的每個組件都被分配了不同的值,這意味着堆棧中沒有重複的組件。然後,如果組件中的一個小項目(例如所示類中的'center')是已知的,我們可以在堆棧中找到唯一的組件。之後,我們可以檢索組件中的其他屬性。那麼我的問題是,如何構建一個正確的容器數據結構以使搜索更容易?現在我正在考慮使用矢量和STL發現算法(僞):
vector<Component> comArray;
comArray.push_back(component1);
.....
comArray.push_back(componentn);
find(comArray.begin(), comArray.end(), center);
我想知道是否有更有效的容器來解決這個問題
我還可以從圖像處理解釋我的問題。在圖像處理中,連接組件分析是目標識別的一個非常重要的步驟,現在我的應用程序可以獲取圖像中的所有連接組件,並且我還發現有趣的對象應該滿足以下要求:它們的連接組件中心應該在特定的範圍內,因此,由於這個約束,我可以消除許多連接的組件,然後在候選組件上工作上述過程中的p是如果給出中心座標約束,如何搜索候選連通分量。任何想法將不勝感激。
你需要能夠搜索每個領域? – SingerOfTheFall 2012-07-27 09:34:00
否。實際上,組件中的每個項目都可以用作關鍵字搜索詞。在這個問題中,我使用「中心」作爲搜索關鍵詞。也可以只使用'底部'或'頂部'。 – feelfree 2012-07-27 09:36:14