Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 图像的直线检测_Image Processing_Curve_Edge Detection_Straight Line Detection - Fatal编程技术网

Image processing 图像的直线检测

Image processing 图像的直线检测,image-processing,curve,edge-detection,straight-line-detection,Image Processing,Curve,Edge Detection,Straight Line Detection,我正在做一个项目,这是在道路上的洞检测。我用激光在道路上发射光束,用相机拍摄道路图像。图像可能是这样的 现在我想处理这个图像,并给出一个结果,它是直的还是不直的。如果是曲线,那么曲线有多大。 我不知道该怎么做。我已经搜索了很多,但是找不到合适的结果。有人能帮我吗 这相当复杂,您的问题也非常广泛,但让我们试一试: 也许你必须识别像素图像中的点。有几个选项可以做到这一点,但我会通过模糊过滤器平滑图像,然后找到最红色的像素(据信是点的中心)。将这些坐标存储在向量数组中(x乘以y的数组) 我会在点之间

我正在做一个项目,这是在道路上的洞检测。我用激光在道路上发射光束,用相机拍摄道路图像。图像可能是这样的

现在我想处理这个图像,并给出一个结果,它是直的还是不直的。如果是曲线,那么曲线有多大。
我不知道该怎么做。我已经搜索了很多,但是找不到合适的结果。有人能帮我吗

这相当复杂,您的问题也非常广泛,但让我们试一试:

  • 也许你必须识别像素图像中的点。有几个选项可以做到这一点,但我会通过模糊过滤器平滑图像,然后找到最红色的像素(据信是点的中心)。将这些坐标存储在向量数组中(x乘以y的数组)

  • 我会在点之间使用样条插值。通过这种方法,可以简单地获得接触每个点的曲线的局部导数

  • 如果一阶导数的最大值很小,则点在一条线上。如果你相信,这些点属于一条曲线,那么第二个导数就是曲率

  • 1。您还可以依赖一些专门用于图像处理的库(这是您挑战的图像处理部分)。opencv就是这样一个库


    两个人。我会使用一些数学工具包,可以是八度音阶,也可以是母语的数学库。

    你可能需要阅读,这是一个非常有趣的工具来解决你的问题。

    测量直线度有几种不同的方法。因为你的问题相当模糊,所以不可能说什么对你最合适

    但我的建议是:

    用于计算通过点的最佳拟合直线,然后计算每条点与该直线的均方距离(直线越直,结果越小)


    正如@urzeit所建议的,您应该首先尽可能准确地找到这些点。在没有看到真实图片的情况下,真的没有办法给出好的建议,除非:试着让任务对你自己来说尽可能简单。例如,如果您可以将相机设置为非常短的快门时间(如果可能的话,为微秒),并同时集中激光能量,“背景”对图像亮度的贡献较小,激光光斑将只是暗背景上的亮点

    测量线性应该很简单,不过“线性”只是“线性相关性”的另一个词。因此,您可以简单地计算X和Y之间的值。正如链接维基百科页面上的图片所示,相关性=1意味着所有点都在一条线上


    如果你想要实际的直线,你可以简单地使用。

    注意:图中显示的是完全线性回归,而不是“普通”线性回归。这样做的缺点是,它没有像标准差或相关性等可靠的统计估计器那样,正确地考虑沿线点的“长度”或点的数量。@nikie True,但询问者没有提供关于这些点实际代表什么的任何具体信息,所以我们只能猜测哪种方法最有效。这正是我的观点。我们知道的不多。因此,无偏估计应该是默认选择。有偏见的估计器是有道理的,但如果没有任何知识来证明它的合理性,它将不是我的第一选择。@nikie OK,要点:-)我如何在C#中开始这些图像处理@urzeit@new:你以前用过C吗?