Я пытаюсь обнаружить определенные движущиеся объекты в видео. Если любые два/три + прямоугольника перекрываются/пересекаются, я хочу, чтобы они меняли цвет. я пытался что-то вроде этого:Пересечение в массиве прямоугольников OpenCv
for (size_t i = 0; i < contours.size(); i++)
{
Scalar color = Scalar(0.0, 255.0, 0.0);
// intersection
original = boundRect[i];
for (size_t j = 0; j < boundRect.size(); j++){
if (j == i) continue; // the same rectangle
match = boundRect[j];
if ((original & match).area() > 0) color = Scalar(0.0, 0.0, 255.0);
else color = Scalar(0.0, 255.0, 0.0);
}
// draw the rectangle
rectangle(frame, boundRect[i].tl(), boundRect[i].br(), color, 2, 8, 0);
}
Это делает работу где-то, но теперь всегда. Я не знаю, правильно ли я делаю это, или если есть лучший способ сделать это.
вы перезаписать цвет для каждого у ... только удалите случай else – Micka
О да, вы правы. Задача решена. – Croolman
@Micka Вы должны разместить это как ответ, чтобы вопрос отображался как ответ. – SSteve