绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
我的图像处理学习笔记之角点检测
2019-08-13 11:22:33

角点检测一直是图像处理中的重要课题。这是至关重要的,因为它有助于我们找到图像中的独特特征。有几种方法可以检测图像中的角点。我认为的是Harris Corner Detection。我在Open-CV文档中阅读它之后,它让我了解了如何检测图像中的角点。我决定开发一种检测角落的方法,以便我能够理解逻辑。

可以通过过滤器找到图像中的角。那么,我们需要什么样的过滤器来找到图像中的角?

示例1:假设我们有一个有角的二进制图像。

0 0 0 0

0 0 0 0

0 0 1 1

0 0 1 1

实施例-2:

1 1 0

1 1 0

0 0 0

示例3:即使它看起来不像上面给出的角,下面给出的二进制图像也代表一个角。

0 1 1 0

0 1 1 0

0 0 0 0

0 0 0 0

假设我们有很多这样的模式。通过经典模式匹配方法,可以检测上述模式中任何角落的存在。对于经典模式匹配方法,请查看(http://scikit-image.org/docs/0.9.x/auto_examples/plot_template.html)。

但是,不是像这样有几个过滤模式,我们可以将它们全部包含在一个大模式中吗?

我们可以。但首先,让我们看看角落的模式应该有多大:

如果我们有如下所示的过滤模式,我们可能会遇到一些问题。

0 1/1 0

0 0/0 0

可能会出现什么样的问题?

假设我们在图像中有一条直线。我们需要找到的角落是线的起点和终点。

线图像:

0 1 0 0 0

0 0 1 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

当您看到粗体数字时,即使在那里没有角落,也可以在一条线的中间找到2x2角图案。

那么,我们该怎么办?我们将扩大模式。

如果我们有如下所示的过滤模式,则可以避免此问题。

1 1 0 0/0 0 1 1

1 1 0 0/0 0 1 1

0 0 0 0/0 0 0 0

0 0 0 0/0 0 0 0

我们决定了模式的大小和类型。现在,是时候将它们合并为一般过滤模式,其中包含我们想要检测的所有类型的角落。

一般模式:

0 0 0 0 0 0

0 0 0 0 0 0

0 0 1 1 0 0

0 0 1 1 0 0

0 0 0 0 0 0

0 0 0 0 0 0

让我们看看可以从上面的一般过滤模式中获得什么样的4x4过滤模式。

0 0 0 0

0 0 1 1

0 0 1 1

0 0 0 0

0 0 0 0

0 0 0 0

0 0 1 1

0 0 1 1

1 1 0 0

1 1 0 0

0 0 0 0

0 0 0 0

等等…

因此,如果我们从输入图像中剪切模板,并且如果我们在一般过滤模式中搜索并找到它,那么我们可以检测输入图像中的角。

角落的角度关系怎么样?

在我们应用上述方法后,我们将找到我们检测到的角点的坐标。在此之后,将找到检测到的角落坐标的平均坐标。

显示平均坐标。 (图中有角落。)

找到平均坐标后,将找到平均坐标和每个角之间的线的角度。

找到这些角度后,我们可以研究它们代表什么。

平均坐标和输入图像角之间的角度表示。 (输入图像是来自MNIST数据集的数字1图像。青色是来自数字5图像。)

如我们所见,一些数字1图像显示彼此相似。但数字5(青色)图像显示完全不同的行为。

结论:

角之间的关系的角度表示可以适合用于特征描述。该特征提取可以提高准确率,同时减少分类算法训练所花费的时间。

用Python解释方法的代码:

分享好友

分享这个小栈给你的朋友们,一起进步吧。

时悦的原创空间
创建时间:2019-08-12 11:14:46
该小栈全部为原创干货,分享数据库,Python等相关内容 另外还有运动健身和英语学习的内容哦 个人微信公众号:宅必备
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • ibsbforever
    栈主

小栈成员

查看更多
  • 栈栈
  • 杨三百
  • ?
  • else
戳我,来吐槽~