2015-05-03 5 views
0

У меня есть контуры, которые извлекаются из findcontours(), Теперь я хочу создать массив всех ограничивающих вершин контуров.Создайте массив прямоугольников: Opencv, Android

int area,total=0; 

for(int i=0; i<contours.size(); i++) 
{ 
    area = (int) Imgproc.contourArea(contours.get(i)); 

    if(area>4600 && area<5100) 
    { 
     Rect abc = Imgproc.boundingRect(contours.get(i));       
    } 
} 

Здесь сохраняет только 1 контур в Rect, я хочу массив Rect всех контуров.

ответ

1

Это должно быть лучше:

int area,total=0; 
List<Rect> contourRects = new ArrayList(); 

for(int i=0; i<contours.size(); i++) 
{ 
    area = (int) Imgproc.contourArea(contours.get(i)); 

    if(area>4600 && area<5100) 
    { 
     contourRects.add(Imgproc.boundingRect(contours.get(i)));       
    } 
} 
+0

Ваш ответ правильный (+1), но вы должны объяснить О.П., что он получал не так. – Antonio

+0

Спасибо, это сработало! –