Вычислить площадь объекта с помощью OpenCV
мне нужно рассчитать площадь blob / объекта в изображении в оттенках серого (загрузка его как мат, а не как IplImage) с помощью OpenCV.
Я подумал, что было бы неплохо получить координаты ребер (количество ребер меняет форму объекта на объект) или получить все координаты контура, а затем использовать contourArea() для вычисления площади моего объекта.
Я удалил весь шум и получил некоторые приятные и удовлетворительные контуры, используя findContours() (программирование в C++).
findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy,int mode, int method, Point offset=Point());
теперь я должен понять, что param contours уже владеет координатами всех контуров моего объекта. Я правильно понял?
если да, то это есть способ получить к ним доступ?
и если нет, то как я могу получить координаты контура в любом случае?
1 ответов
contours фактически определяется как 
vector<vector<Point> > contours;
и теперь я думаю, что ясно, как получить доступ к его точкам.
площадь контура вычисляется функцией, красиво называемой contourArea():
for (unsigned int i = 0;  i < contours.size();  i++)
{
     std::cout << "# of contour points: " << contours[i].size() << std::endl;
     for (unsigned int j=0;  j<contours[i].size();  j++)
     {
         std::cout << "Point(x,y)=" << contours[i][j] << std::endl;
     }
     std::cout << " Area: " << contourArea(contours[i]) << std::endl;
}
