Мне нужно найти крайние точки кругов на этом изображении (верхний левый угол, верхний правый угол, нижний левый угол и, наконец, нижний правый угол)
Изображение проходит пороговое значение, затем обнаруживает края перед наложением обратно на исходное изображение.
и соединить их вместе (нарисовать краской)
но как мне сначала получить радиус и координаты x и y из центра, а затем нарисовать линию?
for (int i = 0; i < circles.size(); i++)
{
//icout << i<<"\n"<<endl;
Point center(cvRound(circles[i][ 0]), cvRound(circles[i][1]));
stringstream ss;
ss << i + 1;
putText(dst, ss.str(), center, 1, 1, Scalar(255, 0, 225 ), 2, 0);
int radius = cvRound(circles[i][2]);
// circle center
circle(src, center, 3, Scalar(0, 255, 0), -1, 8, 0);
// circle outline
circle(src, center, radius, Scalar(0, 0, 255), 3, 8, 0);
//for original image overlap
circle(dst, center, 3, Scalar(0, 255, 0), -1, 8, 0);
// circle outline
circle(dst, center, radius, Scalar(0, 255, 255), 3, 8, 0);
}
это демонстрационный код, но я изо всех сил пытаюсь понять круги .size () из
for (int i = 0; i < circles.size(); i++)
а также
Point center(cvRound(circles[i][ 0]), cvRound(circles[i][1]));
Я буду признателен, если вы объясните мне это более простым способом, поскольку я все еще нахожусь в процессе обучения, мне подойдет просто отправная точка для начала. Спасибо!
for( int i = 0; i< contours.size(); i++ ) { Scalar color = Scalar( 0, 0, 255 ); drawContours( drawing, hull, i, color, 1, 8, vector<Vec4i>(), 0, Point() ); }
нарисовать полностью красным цветом только корпус. Код rng - это генератор случайных чисел, поэтому код учебника будет рисоваться случайным цветом! - person Micka   schedule 28.09.2016