找到合适的陷波滤波器以去除图像中的图案

Yazan Houshieh

我想在图像上应用陷波滤镜,以抑制图像中的图案,但图像的其余部分尽可能完整。我执行以下步骤:

I = imread('...img....');
ft = fftshift(fft2(I));
[m,n] = size(ft);
filt = ones(m,n);
%filt(......) = 0; % my problem is here 
ft = ft .* filt;
ifft_ = ifft2(ifftshift( ft));

所以我不知道确切设置为零以获得正确的结果。 在此处输入图片说明

乔达格

如果您查看图像的后部,您可以清楚地看到导致图像图案变化的强频率。

在此处输入图片说明

您需要创建一个陷波滤波器,以将那些高峰周围的区域清零。我尝试使用高斯陷波滤波器进行此操作,结果频谱看起来像这样。

在此处输入图片说明

图像(对比度增强)被证明是

在此处输入图片说明

这是一些用于构建和应用过滤器的MATLAB代码

I = imread('YmW3f.png');
ft = fftshift(fft2(I));
[m,n] = size(ft);

% define some functions
norm_img = @(img) (img - min(img(:))) / (max(img(:)) - min(img(:)));
show_spec = @(img) imshow(norm_img(log(abs(img)-min(abs(img(:)))+1.0001)));
gNotch = @(v,mu,cov) 1-exp(-0.5*sum((bsxfun(@minus,v,mu).*(cov\bsxfun(@minus,v,mu)))));

% show spectrum before
figure();
show_spec(ft);

% by inspection
cx = 129;
cy = 129;

% distance of noise from center
wx1 = 149.5-129;
wx2 = 165.5-129;
wy  = 157.5-129;

% create notch filter
filt = ones(m,n);

% use gaussian notch with standard deviation of 5
sigma = 5;
[y,x] = meshgrid(1:n, 1:m);
X = [y(:) x(:)].';
filt = filt .* reshape(gNotch(X,[cx+wx1;cy+wy],eye(2)*sigma^2),[m,n]);
filt = filt .* reshape(gNotch(X,[cx+wx2;cy+wy],eye(2)*sigma^2),[m,n]);
filt = filt .* reshape(gNotch(X,[cx-wx1;cy-wy],eye(2)*sigma^2),[m,n]);
filt = filt .* reshape(gNotch(X,[cx-wx2;cy-wy],eye(2)*sigma^2),[m,n]);

% apply filter
ft = ft .* filt;

% show spectrum after
figure();
show_spec(ft);

% compute inverse
ifft_ = ifft2(ifftshift( ft));
img_res = histeq(norm_img(ifft_));

figure();
imshow(img_res);

编辑:meshgrid由于Todd Gillette指示的原因,交换了参数

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

线性相位FIR陷波滤波器和IIR陷波滤波器

来自分类Dev

图案滤波器端子

来自分类Dev

如何在MATLAB中制作多个陷波滤波器?

来自分类Dev

使用陷波滤波器和Butterworth过滤数据

来自分类Dev

Soda滤波器在cuda中(无法显示完整图像)

来自分类Dev

通过MATLAB中的逆滤波器问题重建图像

来自分类Dev

反向(去除)抗混叠滤波器

来自分类Dev

C中的FIR滤波器?

来自分类Dev

C中的定点FIR滤波器?

来自分类Dev

python中的fft带通滤波器

来自分类Dev

C ++中的FIR滤波器

来自分类Dev

在MATLAB中实现均值滤波器

来自分类Dev

dplyr滤波器中的标量比较

来自分类Dev

Python中的带通滤波器形状

来自分类Dev

OpenCL中的低通滤波器

来自分类Dev

R中的输入滤波器

来自分类Dev

PyTorch中的高斯滤波器

来自分类Dev

Python中的低通滤波器

来自分类Dev

C中的低通滤波器

来自分类Dev

Matlab中滤波器的逆FT

来自分类Dev

R中的动态滤波器

来自分类Dev

Matlab中的FIR滤波器

来自分类Dev

Matlab中的滤波器系数

来自分类Dev

Python中的带通滤波器形状

来自分类Dev

python中的圆形中值滤波器

来自分类Dev

在MATLAB中对图像进行高通巴特沃斯滤波器

来自分类Dev

在MATLAB中对图像进行去噪的几何均值滤波器

来自分类Dev

MR8滤波器组中的最大滤波器响应是多少?

来自分类Dev

如何在matlab中将图像与内核/滤波器相乘