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_contours
Wreszcie,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
.