2012-04-02 144 views
1

我已經使用openCV輪廓檢測方法檢測到具有640 * 480圖像的所有輪廓。在所有這些輪廓中,我想找到駐留在我將要定義的特定區域中的輪廓。你能給我任何建議嗎?查找特定區域內的輪廓

我是否必須找到所有輪廓的中心點並檢查它們是否位於指定區域?

+0

輪廓是否可以部分在區域內? – cxyzs7 2012-04-02 17:42:15

+0

是的,輪廓可以部分在區域內。 – Udaya 2012-04-09 08:43:46

+0

如果您可以添加圖片,我們將不勝感激。在imageshack.us上傳圖片並在此處鏈接,如果您無法在此處上傳圖片。 – 2012-04-22 11:03:57

回答

0

用C++作爲參考,讓我們假設你已經在保存輪廓:

vector < vector <Point> >contours; 

那麼你可以封裝在Rects個人的輪廓,如圖所示:

vector<Rect> boundRect(contours.size()); 
vector<Point> center(contours.size())//center of each Rect 


     for(int i = 0; i < contours.size(); i++) 
     { 
      boundRect[i] = boundingRect(contours[i]); 
      center[i]=Point(boundRect[i].x+boundRect[i].width/2,boundRect[i].y+boundRect[i].height/2) 
     } 

你現在有每個輪廓的近似質量中心。您現在可以檢查您的中心是否處於所需的投資回報率。