从预定义的形状检测形状并裁剪背景

时间:2013-03-11 12:15:01

标签: matlab image-processing computer-vision

我有几个pugmark的图像,有很多不可忽视的背景区域。我不能做基于强度的算法来从前景分离背景。 我尝试了几种方法。其中一个是detecting object in Homogeneous Intensity image 但这不适用于粗糙的纹理图像,如

http://img803.imageshack.us/img803/4654/p1030076b.jpg

http://imageshack.us/a/img802/5982/cub1.jpg

http://imageshack.us/a/img42/6530/cub2.jpg

他们可能有三种可能的方法:

1)如果我可以降低图像的粗糙度因子并获得更平滑的纹理,即更平坦的表面。

2)如果我可以通过在数据库中定义粗糙的pugmark形状然后删除背景来获取像http://i.imgur.com/W0MFYmQ.png

这样的图像,可以在这些图像中检测出类似形状的pugmark

3)如果我能够检测到具有深度的区域并根据它们的深度差异将它们与背景分开。

请告诉我们这些方法是否有效,如果是,那么如何实施它们。

3 个答案:

答案 0 :(得分:0)

我预感到这个问题可以从使用多项式纹理贴图中受益。 见这里:http://www.hpl.hp.com/research/ptm/

答案 1 :(得分:0)

您可能需要考虑流程中的自上而下信息。例如,请参阅this work

答案 2 :(得分:0)

看起来你离pugmark足够近,所以我认为你应该能够使用Viola Jones算法检测pugmarks。也许类似PCA的算法(例如Eigenface)也可以工作,即使你没有尝试识别特定的标记,它仍然可以用来判断图像中是否有pugmark。

您是否尝试过对图像进行边缘检测?我想应该可以微调Canny edge detector阈值以消除噪音(如果它不够好,先低通过滤你的图像),然后对剩下的东西进行形状识别(你会在那里) geometric feature learning和结构匹配的领域)Viola Jones和可能类似PCA的算法将是我的第一次尝试。