3

我正在做一些与眼睛图像相关的工作。我对它进行了边缘检测。边缘就像一条曲线而不是连续的。我必须假设它是连续的并找到该曲线的法线。如何使用 MATLAB 找到它的法线?

你可以看到下面的图片。

边缘图像

我想找到上曲线的法线。我希望我已经足够清楚了。

4

3 回答 3

2

尽管看起来不直观,但每个像素的边缘方向是对法线的一个很好的估计。这将是最简单的解决方案,因为它不涉及任何曲线拟合。

在 MATLAB 中,您可以使用 Sobel 滤波器找到逐像素的边缘方向:

[BW,thresh,gv,gh] = edge(I,'sobel');
edgeDir = atan2(gv, gh);

这为您提供了以弧度为单位的角度的边缘方向。

于 2013-04-18T09:27:24.173 回答
1

您可能需要考虑对数据进行曲线拟合(基于 MSE 或其他一些标准)。我相信二阶对上曲线有好处,一旦你有了模型,你就可以计算每个点的切线和法线。

于 2013-04-18T07:14:21.710 回答
0

正如赞福德建议的那样,法线垂直于边缘。您不需要进行曲线拟合,您可以使用反投影来识别曲线的焦点。

从曲线的每个边缘点开始,从曲线沿法线方向画一条线。通过增加线通过的每个像素的值来绘制线。一旦对所有边缘执行此操作,您将希望找到两个像素值比其余像素更高的像素,每条曲线一个像素。然后,您应该知道每个曲线的焦点位置。

于 2013-04-28T03:20:34.427 回答