我是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);
}