作者windows2k (KERORO军曹)
站内Prob_Solve
标题Re: [问题] 二维的字串比对问题
时间Sat Jul 8 14:04:35 2006
以下这个方法通常只是理论上可以实行, 做起来就囧了
可以把二维的字串看作是影像,
原来的问题就变成从一张影像当中, 找到一致性的 pattern
定义 SSE = Sum of Square Error,
SSE = sigma (Image[x+i][y+j] - pattern[i][j]) ^ 2
i = 1...p, j = 1...q
p和 q 是 pattern的高和宽 x,y 可以看作是搜索的起点
只要找到 SSE = 0 的区块, 就表示两个部份是一样的
我们可以将 SSE 重新改写成
SSE = sigma (Image[x+i][y+j] ) ^ 2 + sigma (pattern[i][j]) ^ 2
i, j i,j
- 2* sigma Image[x+i][y+j] * pattern[i][j]
i,j
前面两项可以经由预处理做掉.
後面 Convolution的部份,可以交由 FFT 先将资料转至频率空间
H[i] = F[i] * G[i]
再经由 Inverser FFT 转回来得到每个点的convolution.
不过, 这没有比较快, 加上可能有浮点误差的问题存在
只是提供一种不同的作法, 听听就算了 XD
--
打了这麽多, P币应该不少才是
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.220.140
1F:推 ledia:不错 138 银 XD 07/08 16:31