在iPhone上检测图像中三角形的角落

时间:2011-04-17 12:39:34

标签: iphone opencv imagemagick

嘿伙计们, 在最终确定我的应用时,我遇到了一些问题。实际上,到目前为止,在某些时候,用户必须选择具有一些可拖动对象的三角形的三个顶点。现在,即使这不是问题,我认为接近零用户交互可能很有趣,并让我的应用程序挑选图像中三角形的顶点,并自动将标记放在正确的位置

在做了一些研究,并考虑了lile OpenCV,ImageMagick等等之后,我并不确定如何识别并找到图像中三角形顶点的位置。有什么想法吗?

提前致谢!

编辑:如果有人的解决方案不涉及amy外部库,我仍然很高兴听到它!

2 个答案:

答案 0 :(得分:3)

可以检测图像中的形状,然后使用各种不同的图像处理技术检测这些形状的角。例如,请参阅此SO question about detecting corners of polygonsmy answer there

这实际上是一项简单还是艰巨的任务,在很大程度上取决于您可以安全地假设有关三角形图像的信息量。

例如,如果您的图像是计算机生成的,并且只有三角形而没有其他内容,如果三角形与背景形成鲜明对比,如下所示,那么您可以使用OpenCV在几行代码中编写一些内容找到你的顶点  triangle from wikipedia

在这种情况下,您可以将图像转换为灰度图像,应用阈值来创建二进制图像,使用内置函数查找图像的边界,然后使用SO问题中的任何方法找到角落。

另一方面,如果您正在处理三角形的照片,那么您的问题会变得更加困难,因为获取三角形的二进制图像并不那么简单。您将不得不处理未知的照明和背景条件。您可能无法使用简单的阈值,并且您将不知道要使用的值阈值。您可能需要对图像进行某种边缘检测,并且您将看到一个耗时的项目。首先,请参阅O'Reilly的书籍Learning OpenCV

enter image description here

答案 1 :(得分:0)

功能检测很复杂,所以除非您想从头开始编写自己的功能,否则您将无法使用第三方库。这是一个看起来很有希望的人:

http://code.google.com/p/simple-iphone-image-processing/