Поиск сегментов, которые образуют угол с 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).