可视化霍夫变换的结果

问题描述 投票:0回答:1

我目前正在编程一个激光3D传感器,它为我提供了2D阵列中的边缘点(X,Y,Z)。坐标用于执行霍夫变换。 Rho 和 Theta 中的结果输出到我的控制台。
我现在的问题是我是否可以可视化这个结果,以检查正确性。我想到了库OpenCV,但我不熟悉它的编程,只看到了对文件路径指定的图像进行转换和可视化的函数和示例。也许有人可以告诉我 OpenCV 是否支持允许将 Rho 和 Theta 值可视化作为原始输入的函数,或者是否还有其他可能性。


提前非常感谢

c++ visual-studio opencv hough-transform
1个回答
0
投票

您可以将 OpenCv 图像中的点绘制为轮廓,然后应用霍夫变换,如下所示:

cv::Mat dst;
cv::drawContours(dst, contours, -1, cv::Scalar(0, 255, 0), 2);
 // contours is your 2D vector)

vector<Vec2f> lines; // will hold theta and rho
HoughLines(dst, lines, 1, cv::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';
}
© www.soinside.com 2019 - 2024. All rights reserved.