【问题标题】:Visualize the Result of a Hough Transformation可视化霍夫变换的结果
【发布时间】:2022-07-26 19:46:16
【问题描述】:
我目前正在编写一个激光 3D 传感器,它为我提供了 2D 阵列中的边缘点(X、Y、Z)。坐标用于执行 霍夫变换。 Rho 和 Theta 的结果输出到我的控制台。
我现在的问题是我是否可以可视化这个结果,以检查正确性。我想到了库OpenCV,但我对它的编程并不熟悉,并且只看到了对文件路径指定的图像进行转换和可视化的函数和示例。也许有人可以告诉我 OpenCV 是否支持将 Rho 和 Theta 值可视化为原始输入的函数,或者是否有其他可能性。
非常感谢提前
亲切的问候
西蒙
【问题讨论】:
标签:
c++
visual-studio
opencv
hough-transform
【解决方案1】:
您可以在 OpenCv 图像中将点绘制为轮廓,然后按如下方式应用霍夫变换:
cv::Mat dst;
cv::drawContours(dst, contours, -1, Scalar(0, 255, 0), 2);
// contours is your 2D vector)
vector<Vec2f> lines; // will hold theta and rho
HoughLines(dst, lines, 1, CV_PI/180, 150, 0, 0 );
for( size_t i = 0; i < lines.size(); i++ )
{
float rho = lines[i][0], theta = lines[i][1];
std::cout << "rho = " << rho << " theta = " << theta << '\n';
}