convol_fftconvol_fftConvolFftConvolFftconvol_fft卷积快速傅里叶变换(算子)

名称

convol_fftconvol_fftConvolFftConvolFftconvol_fft — 在频域中使用滤波器对图像进行卷积。

签名

convol_fft(ImageFFT, ImageFilter : ImageConvol : : )

Herror convol_fft(const Hobject ImageFFT, const Hobject ImageFilter, Hobject* ImageConvol)

Herror T_convol_fft(const Hobject ImageFFT, const Hobject ImageFilter, Hobject* ImageConvol)

void ConvolFft(const HObject& ImageFFT, const HObject& ImageFilter, HObject* ImageConvol)

HImage HImage::ConvolFft(const HImage& ImageFilter) const

static void HOperatorSet.ConvolFft(HObject imageFFT, HObject imageFilter, out HObject imageConvol)

HImage HImage.ConvolFft(HImage imageFilter)

def convol_fft(image_fft: HObject, image_filter: HObject) -> HObject

描述

作为计算图像与滤波器图像卷积的一部分,convol_fftconvol_fftConvolFftConvolFftConvolFftconvol_fft 将图像 ImageFFTImageFFTImageFFTImageFFTimageFFTimage_fft 的傅里叶变换与作为滤波器的第二个图像 ImageFilterImageFilterImageFilterImageFilterimageFilterimage_filter 的傅里叶变换相乘。

根据卷积定理,两个图像在像素空间中的非归一化卷积可通过三步获得:

  1. 使用傅里叶变换将图像转换到频域(参见例如 fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic)。

  2. 将转换后的图像与转换后的滤波器图像进行逐像素乘法运算。

  3. 使用逆傅里叶变换将结果转换回像素空间(参见例如 fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic)。

算子 convol_fftconvol_fftConvolFftConvolFftConvolFftconvol_fft 用于执行第二步,即对 ImageFFTImageFFTImageFFTImageFFTimageFFTimage_fftImageFilterImageFilterImageFilterImageFilterimageFilterimage_filter 进行像素级乘法运算。

注意

滤波操作始终作用于整个图像,即忽略图像的域。

执行信息

参数

ImageFFTImageFFTImageFFTImageFFTimageFFTimage_fft (输入对象)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (complex)

复数输入图像。

ImageFilterImageFilterImageFilterImageFilterimageFilterimage_filter (输入对象)  (multichannel-)image objectHImageHObjectHImageHobject (real / complex)

在频域中进行滤波。

ImageConvolImageConvolImageConvolImageConvolimageConvolimage_convol (输出对象)  image(-array) objectHImageHObjectHImageHobject * (complex)

频域结果。

示例(HDevelop)

gen_highpass(Highpass,0.2,'n','dc_edge',Width,Height)
fft_generic(Image,ImageFFT,'to_freq',-1,'none','dc_edge','complex')
convol_fft(ImageFFT,Highpass,ImageConvol)
fft_generic(ImageConvol,ImageResult,'from_freq',1,'none','dc_edge','byte')

结果

convol_fftconvol_fftConvolFftConvolFftConvolFftconvol_fft 在所有参数正确时返回 2 (H_MSG_TRUE)。当输入为空时,可设置行为通过算子 set_system(::'no_object_result',<Result>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)。如有必要,则抛出异常。

可能的前趋

fft_imagefft_imageFftImageFftImageFftImagefft_image, fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic, rft_genericrft_genericRftGenericRftGenericRftGenericrft_generic, gen_highpassgen_highpassGenHighpassGenHighpassGenHighpassgen_highpass, gen_lowpassgen_lowpassGenLowpassGenLowpassGenLowpassgen_lowpass, gen_bandpassgen_bandpassGenBandpassGenBandpassGenBandpassgen_bandpass, gen_bandfiltergen_bandfilterGenBandfilterGenBandfilterGenBandfiltergen_bandfilter

可能的后继

power_bytepower_bytePowerBytePowerBytePowerBytepower_byte, power_realpower_realPowerRealPowerRealPowerRealpower_real, power_lnpower_lnPowerLnPowerLnPowerLnpower_ln, fft_image_invfft_image_invFftImageInvFftImageInvFftImageInvfft_image_inv, fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic, rft_genericrft_genericRftGenericRftGenericRftGenericrft_generic

替代

convol_gaborconvol_gaborConvolGaborConvolGaborConvolGaborconvol_gabor

另见

gen_gaborgen_gaborGenGaborGenGaborGenGaborgen_gabor, gen_highpassgen_highpassGenHighpassGenHighpassGenHighpassgen_highpass, gen_lowpassgen_lowpassGenLowpassGenLowpassGenLowpassgen_lowpass, gen_bandpassgen_bandpassGenBandpassGenBandpassGenBandpassgen_bandpass, convol_gaborconvol_gaborConvolGaborConvolGaborConvolGaborconvol_gabor, fft_image_invfft_image_invFftImageInvFftImageInvFftImageInvfft_image_inv

模块

基础