如何在opencv中检测建筑和雕塑?

时间:2012-07-01 19:30:42

标签: opencv computer-vision

有人能告诉我如何才能发现建筑或雕塑的照片吗? 我认为hough-transforming是一种很好的方法。但我是CV的新手,也许有更好的方法来检测模式。我听说过haarcascade。我也可以把这个用于建筑吗? 例如,我想检测那些类型的图片:

Image Hosted by ImageShack.us http://img163.imageshack.us/img163/8417/resizeimg0958.jpg Image Hosted by ImageShack.us http://img842.imageshack.us/img842/4748/resizeimg0931.jpg

1 个答案:

答案 0 :(得分:4)

如果您希望算法检测它们,则从图像中检测对象需要该对象的描述,机器或计算机可以理解该对象。对于雕塑或建筑,你怎么能有这样统一的定义,因为它们在各方面都有很大差异?例如,您的输入图像变化很大。我们如何区分房屋和建筑?你的问题会引发很多问题。即使使用Hough Transforming,您应该如何区分大房子和大型建筑?

查看此SOF:Image Processing: Algorithm Improvement for 'Coca-Cola Can' Recognition

他想要检测可口可乐罐,而不是可口可乐瓶。但是如果你仔细研究它,你会明白罐头和瓶子几乎是相似的,很难区分它们。你可以在后续的答案中找到很多困难。主要问题是,在某些情况下,人类也难以区分它们。

在你的第二张图片中,即使你为第二张图像训练一些级联,如果它们存在于你的图像中,它会检测到活狮子有一个变化,因为雕塑狮子和原始狮子看起来几乎相同的机器。

Haar cascades 可能没那么有效,因为你必须训练很多这类图像。

如果您有一些样本图像,并想检查图像中是否有这些图像,可能您可以使用 SURF功能等。但您可能需要先对一些样本图像进行比较。有关SURF的演示,请查看此SOF:OpenCV 2.4.1 - computing SURF descriptors in Python

enter image description here

另一个选项是模板匹配。但它很慢,并且它不是规模和方向不变的。你需要一些模板图像

我想我已经看过一些与此主题有关的论文(但我现在不记得了)。可能谷歌搜索会得到你。如果我得到它,我会更新答案。