涉及图像处理的项目,即,当通过某个折射率的介质移动时计算相同图像的角度偏移。我们必须构建一个应用程序来关联2个图像(相位/ 2D相关?),然后使用Chaco和Mayavi(Python中的2个库)进行绘图。 是否有其他现有的模板软件(FOSS),我们可以将我们的应用程序作为参考,或者将其用作参考?
答案 0 :(得分:2)
使用scipy这应该是一个单行(虽然你可以避免使用ndimage包)
from scipy.fftpack import fftn, ifftn
corr = (ifftn(fftn(a)*ifftn(b))).real
假设您已设法将原始图像读入numpy数组a&湾如果它是2D图像mayavi可能有点矫枉过正,并且它可能比使用chaco更容易使用matplotlib。如果使用matplotlib,您可以使用
完成所有操作from pylab import *
corr = (ifftn(fftn(a)*ifftn(b))).real
imshow(corr)
答案 1 :(得分:1)
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
这是一个例子:我们拍摄两个相似的图像,但是它们具有不同的相位,并绘制相位相关图(在适当的相位差处有一个白点的黑色图像)。
from scipy import misc
from matplotlib import pyplot
import numpy as np
#Get two images with different phases
im1 = misc.lena()
im2 = np.zeros_like(im1)
im2[:200,:200] = im1[-200:, -200:]
pyplot.imshow(phase_correlation(im1, im2), cmap='gray')
pyplot.show()
答案 2 :(得分:0)
Scipy在其scipy.ndimage包中包含许多图像处理例程。