0 python project image-processing correlation
一个涉及图像处理的项目,即计算同一图像在被某种折射率的介质移动时的角位移。我们必须构建一个应用程序来关联 2 个图像(相位/2D 关联?),然后使用 Chaco 和 Mayavi(Python 中的 2 个库)进行绘图。是否有任何其他现有的模板软件 (FOSS) 可以作为我们的应用程序的基础,或将其用作参考?
相位相关性如http://en.wikipedia.org/wiki/Phase_correlation 所述,取自https://github.com/michaelting/Phase_Correlation/blob/master/phase_corr.py。
def phase_correlation(a, b):
G_a = np.fft.fft2(a)
G_b = np.fft.fft2(b)
conj_b = np.ma.conjugate(G_b)
R = G_a*conj_b
R /= np.absolute(R)
r = np.fft.ifft2(R).real
return r
Run Code Online (Sandbox Code Playgroud)
这是一个例子:我们拍摄两个相似但相位不同的图像并绘制相位相关性(黑色图像,在适当的相位差处有一个白点)。
from scipy import misc
from matplotlib import pyplot
import numpy as np
#Get two images with snippet at different locations
im1 = np.mean(misc.face(), axis=-1) #naive colour flattening
im2 = np.zeros_like(im1)
im2[:200,:200] = im1[200:400, 500:700]
corrimg = phase_correlation(im1, im2)
r,c = np.unravel_index(corrimg.argmax(), corrimg.shape)
pyplot.imshow(im1)
pyplot.plot([c],[r],'ro')
pyplot.show()
pyplot.imshow(im2)
pyplot.show()
pyplot.figure(figsize=[8,8])
pyplot.imshow(corrimg, cmap='gray')
pyplot.show()
Run Code Online (Sandbox Code Playgroud)