⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chapter09removingnoisewithfft.pro

📁 idl 可视化分析与应用(随书程序)
💻 PRO
字号:
; Chapter09RemovingNoiseWithFFT.pro
PRO Chapter09RemovingNoiseWithFFT
  imageSize = [64, 64]
  file = FILEPATH('abnorm.dat', SUBDIRECTORY = ['examples', 'data'])
  image = READ_BINARY(file, DATA_DIMS = imageSize)
  displaySize = 2*imageSize
  DEVICE, DECOMPOSED = 0
  LOADCT, 0
  WINDOW, 0, XSIZE = 2*displaySize[0], YSIZE = displaySize[1], $
    TITLE = 'Original Image and Power Spectrum'
  TVSCL, CONGRID(image, displaySize[0], displaySize[1]), 0
  ffTransform = FFT(image)
  center = imageSize/2 + 1
  fftShifted = SHIFT(ffTransform, center)
  interval = 1.
  hFrequency = INDGEN(imageSize[0])
  hFrequency[center[0]]=center[0] - imageSize[0]+FINDGEN(center[0]-2)
  hFrequency = hFrequency/(imageSize[0]/interval)
  hFreqShifted = SHIFT(hFrequency, -center[0])
  vFrequency = INDGEN(imageSize[1])
  vFrequency[center[1]]=center[1] - imageSize[1]+FINDGEN(center[1]-2)
  vFrequency = vFrequency/(imageSize[1]/interval)
  vFreqShifted = SHIFT(vFrequency, -center[1])
  powerSpectrum = ABS(fftShifted)^2
  scaledPowerSpect = ALOG10(powerSpectrum)
  TVSCL, CONGRID(scaledPowerSpect, displaySize[0], displaySize[1]), 1
  scaledPS0 = scaledPowerSpect - MAX(scaledPowerSpect)
  WINDOW, 1, TITLE = 'Power Spectrum Scaled to a Zero Maximum'
  SHADE_SURF, scaledPS0, hFreqShifted, vFreqShifted, $
    /XSTYLE, /YSTYLE, /ZSTYLE, TITLE = 'Zero Maximum Power Spectrum', $
    XTITLE = 'Horizontal Frequency', YTITLE = 'Vertical Frequency', $
    ZTITLE = 'Max-Scaled(Log(Power Spectrum))', CHARSIZE = 1.5
  mask = REAL_PART(scaledPS0) GT -5.25
  maskedTransform = fftShifted*mask
  WINDOW, 2, XSIZE = 2*displaySize[0], YSIZE = displaySize[1], $
    TITLE = 'Power Spectrum of Masked Transform and Results'
  TVSCL, CONGRID(ALOG10(ABS(maskedTransform^2)), $
    displaySize[0], displaySize[1]), 0, /NAN
  maskedShiftedTrans = SHIFT(maskedTransform, -center)
  inverseTransform = REAL_PART(FFT(maskedShiftedTrans, /INVERSE))
  TVSCL, CONGRID(inverseTransform, displaySize[0], displaySize[1]), 1
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -