Поиск сегментов, которые образуют угол с HoughLinesP и C++

Я хочу вызвать функцию, чтобы сравнить все сегменты, которые я вычисляю в своем коде, и узнать, сколько полигонов, на мой взгляд, состоит из прямых линий, которые состоят из 3, 4 или более сегментов, образующих замкнутый путь, или в качестве альтернативы я хотел бы знать, сколько пар прямых отрезков образуют угол (таким образом, имеют общую точку):

           vector<Vec4i> lines;
       HoughLinesP(dst, lines, 1, CV_PI/180, 80, 50, 10 );
       for( size_t i = 0; i < lines.size(); i++ )
           {
           Vec4i l = lines[i];
           double x = l[0]-l[2];
           double y = l[1]-l[3];
           double dist = pow(x,2) + pow(y,2);
           dist= sqrt(dist);
           segments.push_back(round(dist));
           line( cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0,0,255), 3, CV_AA);
           }

поочередно, пытаясь упростить, как я могу рассчитать количество пересечений между сегментами?

1 ответ

Если я правильно понимаю, учитывая полигон, вы хотите знать, сколько у него вершин.

Я думаю, что хорошим вариантом является использование cv:: окПолиДП, который даст вам минимальное количество вершин, необходимое для представления вашего многоугольника. По количеству вершин вы можете классифицировать полигоны.

Вы можете посмотреть в блоге pyImageSerach хороший учебник (на Python).

Другие вопросы по тегам