【发布时间】:2016-11-02 09:22:31
【问题描述】:
我使用 R Studio 是为了完成图像处理方面的任务。我目前正在使用“EBImage、fftw、...”库。我有一个关于傅立叶分析和功率谱的问题。
1) 我有 2D 矩阵,这是一个图像。此图像由水平线组成,黑色和白色。我想进行傅里叶变换并通过绘图显示其大小。由于图像中的黑线是水平的,因此功率谱将有一条垂直线。我找不到实现它的方法。
现在我正在使用这张图片进行测试: Square
如果为真,则此图像在水平轴和垂直轴上都有一些周期性频率。然后。 FFT 频谱应该看起来像一个“+”。但我发现有些不同。
这是我的代码:
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 Spectrum
这是我的问题:
1) 如何获得正确的光谱图像? 2)我怎样才能将其视为图像,而不是情节? (请参阅顶部的示例链接。)
提前感谢您的帮助。
【问题讨论】:
-
你能给我们提供一个可重现的小例子吗(例如一个示例二维矩阵和你的代码)?stackoverflow.com/questions/5963269/…
-
你好@Eugen,我已经更正了我的问题以获得明确的定义。这是示例链接,我想要达到的内容。 [matlabgeeks.com/tips-tutorials/…
-
我解决了我的问题,这里我给出代码。
标签: r image-processing fft