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