контур не равен контуру [я]?
Это основано наэтот вопрос, которая больше фокусируется на OpenCV C ++, поэтому я решил сделать этот вопрос. Это одна часть моей программы:
vector<vector<Point> > contours;
vector<vector<Point> > largest_contours;
double largest_area = 0;
for(int i= 0; i < contours.size(); i++){
double area = contourArea(contours[i]);
if(area >= largest_area){
largest_area = area;
largest_contours = contours[i]; <---THIS is the problem
}
}
В основномпрограмма Сделаю:
Сканирует все контуры, обнаруженные в последовательностях изображений / видеоОбозначает контуры какcontours[i]
Рассчитывает площадь каждого контураСравниваетcontours[i]
на основании площади. Чем больше площадь становитсяlargest_area
и самый большой контур станетlargest_contours
В заключение,DrawContours
а такжеimshow
Строка с проблемой покажет это сообщение над мышью:
Error: No operator "=" matches these operands
Вопрос в том,почему contours[i]
НЕ равно largest_contours
несмотря на то, что они имеют одинаковый класс (vector<vector<Point> >
) и иметь только одно значение для каждого контура одновременно? Может кто-нибудь объяснить, почему и как это решить?
Заранее спасибо.
РЕДАКТИРОВАТЬ (1): ИзмененоcontourArea(contours)
вcontourArea(contours[i])
, Добавлена декларация дляlargest_contours
а такжеcontours
.