2017-10-13 156 views
-1

我正在寻找一种很好的方法来检测图像是否有类似形状的重复模式,或者只是没有可辨别模式的噪声。图像重复模式检测与Python OpenCV

  1. 此方法将返回true,最好确定有〜35种重复形状的图像(我不希望它一定要查明冒出:这是最好看的一对夫妇的图像显示出在右下角的形状。

返回TRUE

  • 此处所述的方法将返回FALSE。虽然有罗在这个图像中具有不同形状的图像,视觉上清楚地看到没有相似形状的重复图案。
  • 返回false

    的几个注意事项:

    • 的图像是从衬衫上的图案。重复的形状并不完全相同,并且可能不完全均匀。单个图像上可能有从10个形状到几千个形状的任何地方。
    • 我不知道重复自己的形状的大小或特征。我正在从衬衫上拍下这些图片,这样您就可以想象有多种不同类型的重复形状。
    • 我一直在使用scipy.ndimage.measurements.label来识别图像中的所有单个形状。我也使用膨胀来结合附近的形状,并可以过滤出非常小的形状。

    我一直在努力想出一种灵活的方法来处理我正在处理的众多不同模式,但也足够刚性以拒绝噪音。

    感谢任何帮助!

    +0

    fft可以很好地工作,但它无法识别出有多少图案,并且还取决于您打算使用的其他类型的图像。我建议你先给它一个镜头。 –

    回答

    1

    不是一个完整的答案,但希望一些帮助和别人现在可以发表评论光谱可...

    通常情况下,FFT频谱应揭露重复的模式。我不是世界上最好的光谱解释,但在这里他们都是你的图像。

    我与ImageMagick的计算这样在命令行:

    convert image.jpg -fft +delete -evaluate log 100000 spectrum.png 
    

    首先图案化衬衫:

    enter image description here

    然后splodgy乱七八糟:

    enter image description here

    是的,我知道你想要一个OpenCV解决方案,我使用了一个不同的工具,但想法是合作寻找一种先行的方法,然后它可以在OpenCV中重新制定。

    +0

    谢谢。这看起来像我们可能会在某处 - 是否有一种数学方法来区分这些图像? Python中的Numpy有一个很好的包来执行FFT,所以这不是问题。 –

    0

    如果重复模式排列在规则网格上,以便它们通过平移自相似,这是一个自相关工作:如果尝试使用不同的平移向量,自相关图将显示一个强峰值,比赛。

    由于自相关是计算密集型的,您需要求助于DFT(及其快速版本)来计算它。

    +0

    嗨 - 感谢您的意见。我尝试过类似的东西,但由于图片来自衬衫,所以衬衫的谎言如此涟漪,它们并不总是处于完美的格子中。也许我的示例图像看起来像图案上的间距比通常更加完美。我也可能错误地解释你的建议,所以请让我知道你的方法是否解决了这个不完美的电网问题。 –

    +0

    @DanKinn:你应该先说过,这是一个更难的问题,特别是在大变形的情况下。无论如何,自相关方法仍然会显示出峰值,但有点侵蚀。 然后,您可以尝试计算大小等于假定模式大小的图像窗口与整个图像的相关性。尽管变形,你会得到重复模式的重要峰值。 –