最近听了一个公开课,将一个立体物体不同角度的图片进行傅里叶变换后,放置于三维数组中,再进行反傅里叶变换,可以得到物体的3维数据集(照片是二维3通道)。
所用图片:
#所引用的图片为某公开课ppt中的截图: import cv2 import numpy as np #对图像预处理,转换为单通道图像d def preprocess(img): return 0.2126 * img[:,:,0] + 0.7152 * img[:,:,1] + 0.0722 * img[:,:,2] p1=cv2.imread("1.png") p2=cv2.imread("2.png") p3=cv2.imread("3.png") p1=preprocess(p1) p2=preprocess(p2) p3=preprocess(p3) #傅里叶变换,同时将高频和低频调换位置 def fftchange(img,size): img=cv2.resize(img,size) f=np.fft.fft2(img) f_shift=np.fft.fftshift(f) f_l=np.log(1+np.abs(f_shift)) return f_l a1=fftchange(p1,(250,250)) a2=fftchange(p2,(250,250)) a3=fftchange(p3,(250,250)) #创建空数组按照ppt中的示意图将傅里叶变换后的图片放入空数组的对应位置 zeroc=np.zeros((250,250,250)) zeroc[:,:,125]+=a1 zeroc[:,125,:]+=a2 zeroc[125,:,:]+=a3 #对数组做反傅里叶变换 ifft = np.fft.ifft2(zeroc) #暂时没找到绘三维矩阵图像方法,求分享