我有两个图像a和b,其中b是图像块a。我想找到b使用块匹配。我该怎么做呢?
答案 0 :(得分:15)
这很简单,实际上这个名字告诉你几乎所有你需要知道的东西 - 你只需计算每个像素的平方差值之和。
为两张图像计算SSD:
ssd = 0
for i = 0 to height - 1
for j = 0 to width - 1
diff = A[i][j] - B[i][j]
ssd += diff * diff
一般的想法是,对于匹配图像,SSD将很小。如果你试图匹配两个图像,其中一个图像被翻译了一些,那么你通常会做一个强力逼近的方法,你在x,y位移的范围内计算SSD,然后确定最小的SSD值,然后应该对应最佳对齐偏移。
请注意,SSD通常仅用于其简单性和相对较低的计算成本 - 通常使用Normalized Cross Correlation可获得更好的结果。
答案 1 :(得分:1)
如果要在图像a内找到块b的位置,则可以通过构建两个图像的Gaussian pyramid并开始寻找最小的上升点来节省大量计算能力。
最小的图像将为您提供快速计算,但提供估计结果-该估计结果可稍后在金字塔的下一层使用,以缩小搜索范围并获得更好的精度结果。 您继续这样操作,直到达到金字塔的0级,即原始图像。