el contorno no es igual al contorno [i]?
Esto se basa enesta pregunta, que se está enfocando más en OpenCV C ++, así que decidí hacer esta pregunta. Esta es una parte de mi programa:
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
}
}
Básicamenteel programa haré
Escanea todos los contornos detectados en las secuencias de imágenes / videoEtiqueta los contornos comocontours[i]
Calcula el área de todos los contornos.Compara elcontours[i]
Basado en la zona. El área más grande se convierte enlargest_area
y el contorno más grande se convertirálargest_contours
Finalmente,DrawContours
yimshow
La línea con el problema mostrará este mensaje sobre el mouse:
Error: No operator "=" matches these operands
La pregunta es,por que es contours[i]
no es igual a largest_contours
a pesar de que tienen la misma clase (vector<vector<Point> >
) y tiene solo un valor para cada contorno a la vez? ¿Alguien puede explicar por qué y cómo resolverlo?
Gracias por adelantado.
EDITAR (1): cambiadocontourArea(contours)
acontourArea(contours[i])
. Declaración agregada paralargest_contours
ycontours
.