2017-10-13 19 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:你應該先說過,這是一個更難的問題,特別是在大變形的情況下。無論如何,自相關方法仍然會顯示出峯值,但有點侵蝕。 然後,您可以嘗試計算大小等於假定模式大小的圖像窗口與整個圖像的相關性。儘管變形,你會得到重複模式的重要峯值。 –