Рассчитать отражение между линией и прямоугольником ограничивающего прямоугольника (траектории снукера)
Я новичок в OpenCV и C++, и у меня возникла проблема с рисованием траектории / отражения для битка-бита в игре в снукер.
Во-первых, моя проблема - нарисовать отражение линии метки на границе таблицы, которую я уже нарисовал. Шоу кодирования для линии Хафа в основном обнаружило сигнал. Я уже рисую прямоугольник для представления границы таблицы. Моя проблема заключается в определении пересечения между линией и границами.
Второе - нарисовать линию отражения от этой точки пересечения.
Вот мой рисунок для прямоугольника
int x = 39;
int y = 46;
int width = 720;
int height = 370;
Rect Rec(x, y, width, height);
rectangle(imgFrame, Rec, Scalar(255), 1, 8, 0);
Вот грубая трансформация линии, которая обнаруживает сигнал. Мне нужно, чтобы он обнаружил пересечение, когда эта линия пересекается с прямоугольником / границей выше, а также может нарисовать отражение от этой точки пересечения
vector<Vec2f> lines;
HoughLines(image_erode4, lines, 1, CV_PI / 180, 115, 0, 0);
Point pt1, pt2;
for (size_t i = 0; i < lines.size(); i++)
{
float rho = lines[i][0], theta = lines[i][1];
double a = cos(theta), b = sin(theta);
double x0 = a * rho, y0 = b * rho;
pt1.x = cvRound(x0 + 1000 * (-b));
pt1.y = cvRound(y0 + 1000 * (a));
pt2.x = cvRound(x0 - 1000 * (-b));
pt2.y = cvRound(y0 - 1000 * (a));
line(imgFrame, pt1, pt2, Scalar(250, 250, 255), 1, 16);
}