亲爱的信号处理读者,
我想在图像的某些部分中引入“噪声”。
到目前为止,我出于类似目的使用矩形图像,并在 MATLAB 中使用(逆)傅里叶变换 (2D) 进行了以下操作:
fft = fft2(image); % run fourier transform on image
amplitude = abs(fft); % extract power spectrum>
newPhase = ( (rand(size(amplitude)) * 2) - 1) * pi; %generate random phase
newImage = real(ifft2(amplitude. * exp(1i * newPhase))); %use both to generate noised image
这使整个图像的相位随机化,保留了功率谱,并且应该保证输入和输出中的空间频谱相同。
我现在想做的是将这种效果仅应用于图像的一部分,而不是矩形(它是脸部的“内部”部分,适合椭圆形)。所以我想从图像中“剪掉”这个椭圆,把它变成上面的“相位噪声”(功率谱/空间频率恒定),但它又回到了我之前从源图像中剪下来的“洞” .
我的“主要解决方案”当然是 FFT/iFFT 也可以在椭圆上运行,所以我可以继续使用上面显示的方法。经过一些谷歌搜索后,我对该选项感到非常悲观 - 有没有希望?
我发现了以下可能有希望的方法的踪迹,但由于我对 FFT 背后的数学不是很熟悉,我会很感激任何提示/解释(为什么)这些想法中的哪些朝着好的方向发展:
- 以某种方式将椭圆“拉伸”为矩形,按原样应用我的方法,将生成的矩形拉伸回输入椭圆形状。在这里,我担心矩形/椭圆变换可能会破坏匹配的功率谱。您知道在不丢失这些信息的情况下进行转换的好方法吗?(这让我想到了这个想法)
这篇文章还有两个提示:
- 使用 3D 傅立叶变换,其中(据我所知)第 3 维提供有关应使用图像的哪一部分的信息。任何想法/经验如何实现这一点?
使用“椭圆离散傅里叶变换” - 但我不明白它做什么(以及如何)以及如何实现它。
在这个论坛中,有人向相关问题提出了某种窗口逐渐变细的建议(据我所知,这是为了“过滤”只进入图像的影响,因为感兴趣的椭圆位于黑色背景上)我也不明白,另外我不确定它是否可以帮助我,因为听起来这个问题不需要椭圆作为输出。
提前感谢您的任何建议!
干杯。简