我正在使用R Studio进行图像处理任务。当前我正在使用'EBImage, fftw, ...'库。我有一个问题关于傅里叶分析和功率谱。
1)我有一个二维矩阵,也就是一张图片。这张图片由黑白水平线构成。我想进行傅里叶变换并通过绘图显示其大小。由于图像中的黑色线条是水平的,因此功率谱将会有一条垂直的线。但我没能找到实现的方法。
现在我正在使用这张图片进行测试: 正方形
如果正确处理,这张图片在水平和垂直轴上应该具有一些周期性频率。然后FFT Spectrum应该看起来像一个“+”。但我发现结果完全不同。
以下是我的代码:
setwd(".../Project/R/Workspace/Task1")
library("EBImage" , lib.loc="~/R/win-library/3.2")
library("fftwtools", lib.loc="~/R/win-library/3.2")
library("fftw", lib.loc="~/R/win-library/3.2")
# Image Acquisition
img <- readImage(".../Project/Beispielbilder/drmcircle.jpg")
display(img, title='Image')
# Grayscaled
img_gray<-channel(img,"gray")
# FFT
img_ff <- fft(img_gray) #fftw2d
magntd <- sqrt(Re(img_ff)^2+Im(img_ff)^2)
phase <- atan(Im(img_ff)/Re(img_ff))
plot(log(magntd),main="FFT")
因此,这就是我得到的内容: FFT频谱 以下是我的问题:
1)如何获得正确的频谱图像? 2)如何将其作为图像而不是绘图查看?(请参见顶部的示例链接。)
提前感谢您的帮助。