0

我已经在方法的帮助下转换了图像,fft2现在我想找到嘈杂的峰值并删除它们,如下图链接所示:

具有嘈杂峰的图像

请建议实现此目的的 matlab 功能

这就是我到目前为止所做的

  F = fft2(myImage);

  F = fftshift(F); % Center FFT

  F = abs(F); % Get the magnitude
  F = log(F+1); % Use log, for perceptual scaling, and +1 since log(0) is undefined
  F = mat2gray(F); % Use mat2gray to scale the image between 0 and 1

  imshow(F,[]); % Display the result
4

1 回答 1

0

您可以尝试创建一个掩码,以显示/表示超过特定阈值和位置的点。让我们创建位置数组。

[x y] = meshgrid(1:size(a, 2), 1:size(a, 1));  % x-y coordinate of the data
ft = 0.5;                                      % Try different values for your case.
mask = F > ft && y < 0.4*size(a, 1) && y > 0.6*size(a, 1);
F(mask) = 0;

您应该能够检查mask您是否找到了正确的位置。imagesc(mask)在您的试错步骤中会非常有帮助。请注意,我在示例中没有x规则,但如果有助于减少搜索空间,您可以添加它们。

于 2013-08-07T23:34:01.313 回答