нарисовать прямоугольник вокруг обнаруженного круга, используя opencv и c ++

0

предположим, что у меня есть обнаруженный круг с координатой (center.x и center.y), обнаруженный с помощью этой функции круга:

GaussianBlur( dis, dis, Size(3, 3), 2, 2 );

vector<Vec3f> circles;

HoughCircles( dis, circles, CV_HOUGH_GRADIENT, 1, dis.rows/8, 200, 100);

for( size_t i = 0; i < circles.size(); i++ ){

      Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
      cout << "center" << center.x << ", " << center.y << endl;
       // coordinates of center points
      V.push_back(std::make_pair(center.x,center.y));     
       int radius = cvRound(circles[i][2]);
       // circle center
      circle( dis, center, 3, 1, -1, 8, 0 );
       // circle outline
      circle( dis, center, radius, 1, 3, 8, 0 );
  }

как рисовать прямоугольник вокруг этого круга, который центр круга находится в середине прямоугольника, а расстояние между центром и каждой стороной равно "радиус + x"?

Я совершенно новый в обработке изображений, извините за простой вопрос. Буду признателен за любую помощь..

............... Отредактируйте код..................

cv::rectangle( diatence, cvPoint((center.x)-(radius+10),(center.y)-(radius+10)), cvPoint((center.x)+(radius+10),(center.y)+(radius+10)), 1, 1, 8 );
Теги:
opencv
image-processing

1 ответ

1

если центр находится в точке x, y, вы должны нарисовать прямоугольник со следующими характеристиками:

top left corner : x-(radius+a),y-(radius+a)
bottom right corner : x+(radius+a),y+(radius+a)

где a - произвольное значение, которое вы хотите добавить к радиусу.

В более общем плане: при заданной центральной точке x, y и известном размере LxH прямоугольника вы можете нарисовать прямоугольник, указав верхнюю левую точку как x-(L/2),y-(H/2) и нижняя правая точка как x+(L/2),y+(H/2)

  • 0
    спасибо, значит ты имеешь ввиду что-то вроде этого? (пожалуйста, проверьте отредактированный пост)
  • 0
    я не знаком с opencv, это выглядит разумно ... вы пробовали это?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню