2012-04-02 4 views
1

Я обнаружил все контуры с изображением 640 * 480 с использованием метода обнаружения контура OpenCV. Среди всех этих контуров я хочу найти контуры, которые находятся в определенной области, которую я определю. Можете ли вы дать мне какие-либо предложения по этому поводу?Поиск контуров в определенной области

Должен ли я найти центро-иды всех контуров и проверить, что они проживают в данной области?

+0

Может ли контур частично находиться в пределах области? – cxyzs7

+0

Да, контуры могут быть частично в пределах области. – Udaya

+0

Оцените, можете ли вы добавить изображение. Загрузите изображение в imageshack.us и дайте ссылку здесь, если вы не можете загрузить изображение здесь. –

ответ

0

С C++ в качестве ссылки, давайте предположим, что вы сохранили контуры в:

vector < vector <Point> >contours; 

, то вы можете заключить отдельные контуры в прямоугольникам, как показано ниже:

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) 
     } 

Теперь у вас есть приблизительный центр масс каждого контура. Теперь вы можете проверить, находится ли ваш центр в требуемой ROI или нет.