在做了一些研究,并考虑了lile OpenCV,ImageMagick等等之后,我并不确定如何识别并找到图像中三角形顶点的位置。有什么想法吗?
提前致谢!
编辑:如果有人的解决方案不涉及amy外部库,我仍然很高兴听到它!答案 0 :(得分:3)
可以检测图像中的形状,然后使用各种不同的图像处理技术检测这些形状的角。例如,请参阅此SO question about detecting corners of polygons和my answer there。
这实际上是一项简单还是艰巨的任务,在很大程度上取决于您可以安全地假设有关三角形图像的信息量。
例如,如果您的图像是计算机生成的,并且只有三角形而没有其他内容,如果三角形与背景形成鲜明对比,如下所示,那么您可以使用OpenCV在几行代码中编写一些内容找到你的顶点
在这种情况下,您可以将图像转换为灰度图像,应用阈值来创建二进制图像,使用内置函数查找图像的边界,然后使用SO问题中的任何方法找到角落。
另一方面,如果您正在处理三角形的照片,那么您的问题会变得更加困难,因为获取三角形的二进制图像并不那么简单。您将不得不处理未知的照明和背景条件。您可能无法使用简单的阈值,并且您将不知道要使用的值阈值。您可能需要对图像进行某种边缘检测,并且您将看到一个耗时的项目。首先,请参阅O'Reilly的书籍Learning OpenCV。
答案 1 :(得分:0)
功能检测很复杂,所以除非您想从头开始编写自己的功能,否则您将无法使用第三方库。这是一个看起来很有希望的人: