2016-10-09 6 views
0

Я нахожу объект в изображении, используя contourns. и я прилагаю возможности кадидировать в boundRects, чтобы увидеть конечный результат, я хочу удалить финалы, в которых высота> ширина (заключить в черные круги). Любые предложения для этого. Спасибо за вашу помощь и ответ. Мой код:Erase the boundRect в opencv 3.0 C++

enter vector<vector<Point> > contours_poly(contours.size()); 
      vector<Rect> boundRect(contours.size()); 

      for (size_t i = 0; i < contours.size(); i++) 
      { 
       approxPolyDP(Mat(contours[i]), contours_poly[i], 3, true); 
       boundRect[i] = boundingRect(Mat(contours_poly[i])); 
      } 
      for (int i = 0; i < contours.size(); i++) 
      { 
       Scalar color = Scalar(255, 0, 255); 
       rectangle(result_white, boundRect[i].tl(), boundRect[i].br(), color, 2, 8, 0); 
       rectangle(imageLoad, boundRect[i].tl(), boundRect[i].br(), color, 2, 8, 0); 
      } 
      imshow("white final", imageLoad); 

и Шарлем конечный результат: final image

+0

Что вы имеете ввиду удалить? Если вы хотите удалить содержимое изображения в этот момент, вы можете создать маску и применить эту маску к изображению. – PSchn

+0

Спасибо за ваш комментарий, я хочу стереть контуры внутри созданного boundRect. – Alexander33

+0

И с помощью «стирания» вы имеете в виду что? – PSchn

ответ

0

Почему удалить их?

Просто не добавляйте их в вектор прямоугольников, если он не подходит для ваших реквизитов (используйте push_back для вектора).

+0

Спасибо за ваш комментарий, я хочу стереть контуры внутри созданного boundRect. – Alexander33

+0

Затем нарисуйте прямоугольники, заполненные цветом фона. –

+0

Спасибо за ответ @ Андрей Смородов – Alexander33

 Смежные вопросы

  • Нет связанных вопросов^_^