kontur nie jest równy konturowi [i]?

To jest oparte nato pytanie, który koncentruje się bardziej na OpenCV C ++, więc postanowiłem zadać to pytanie. To jedna z części mojego programu:

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
    }
}

Gruntownieprogram zrobi:

Skanuje wszystkie kontury wykryte w sekwencjach obrazu / wideoEtykietuje kontury jakocontours[i]Oblicza obszar każdego konturuPorównujecontours[i] w oparciu o obszar. Większy obszar staje sięlargest_area i największy kontur stanie sięlargest_contoursWreszcie,DrawContours iimshow

W wierszu problemu pojawi się ten komunikat za pomocą myszy:

Error: No operator "=" matches these operands

Pytanie brzmi,dlaczego jest contours[i] NIE jest równy largest_contours mimo że mają tę samą klasę (vector<vector<Point> >) i mieć tylko jedną wartość dla każdego konturu na raz? Czy ktoś może wyjaśnić dlaczego i jak go rozwiązać?

Z góry dziękuję.

EDIT (1): ZmienionocontourArea(contours) docontourArea(contours[i]). Dodano deklarację dlalargest_contours icontours.

questionAnswers(2)

yourAnswerToTheQuestion