跳到主要内容

频率

FFT(快速傅里叶变换)和频域操作。

函数映射

libvips CDart 绑定描述
vips_fwfft()frequencyBindings.fwfft()正向 FFT
vips_invfft()frequencyBindings.invfft()逆向 FFT
vips_freqmult()frequencyBindings.freqmult()频域乘法
vips_spectrum()frequencyBindings.spectrum()计算功率谱
vips_phasecor()frequencyBindings.phasecor()相位相关

fwfft

正向快速傅里叶变换。

frequencyBindings.fwfft(input, output);

将图像从空间域转换到频域。

invfft

逆向快速傅里叶变换。

frequencyBindings.invfft(input, output);

将图像从频域转换回空间域。

freqmult

用频域滤波器乘以图像。

frequencyBindings.freqmult(input, mask, output);

示例 - 低通滤波器:

// 创建低通滤波器掩码
final mask = createBindings.maskIdeal(width, height, frequencyCutoff: 0.5);
frequencyBindings.fwfft(input, fft);
frequencyBindings.freqmult(fft, mask, filtered);
frequencyBindings.invfft(filtered, output);

spectrum

计算功率谱。

frequencyBindings.spectrum(input, output);

返回图像的功率谱,用于频率分析。

phasecor

两个图像之间的相位相关。

frequencyBindings.phasecor(image1, image2, output);

用于图像配准和运动估计。

滤波器掩码

创建频域滤波器掩码:

// 理想滤波器(锐利截止)
createBindings.maskIdeal(width, height, frequencyCutoff: 0.5, reject: false);

// 高斯滤波器(平滑截止)
createBindings.maskGaussian(width, height, frequencyCutoff: 0.5, amplitude: 1.0);

// 巴特沃斯滤波器(可控过渡)
createBindings.maskButterworth(width, height, order: 2, frequencyCutoff: 0.5);