フィルターのクリア

how to takeout low frequency components from an image

4 ビュー (過去 30 日間)
Sandhu
Sandhu 2011 年 11 月 22 日
hi, here i have to do a process please help how to approach for it??
ft_image=fftshift(fft2(image));
after this i want to take out low frequency components into an array.
so first i need to apply low pass filter. i am trying this function
but here i have a doubt what is size(sze) of filter means???
so please help me.
thank you in advance.

回答 (2 件)

Wayne King
Wayne King 2011 年 11 月 22 日
Hi, you can create a high-pass separable filter and do that:
[x,y] = meshgrid(-200:200);
r = hypot(x,y);
km = 0.8*pi;
rm = 200;
w = rm/10;
term1 = sin( (km * r.^2) / (2 * rm) );
term2 = 0.5*tanh((rm - r)/w) + 0.5;
g = (term1 .* term2 + 1) / 2;
imshow(g, 'XData', [-.8 .8], 'YData', [-.8 .8])
axis on
xlabel('Normalized frequency'), ylabel('Normalized frequency')
title('Test pattern')
b2 = fir1(30, 0.3, 'high');
h2 = b2' * b2;
g2 = imfilter(g, h2);
imshow(g2, [], 'XData', [-.8 .8], 'YData', [-.8 .8])
axis on
xlabel('Normalized frequency'), ylabel('Normalized frequency')

Image Analyst
Image Analyst 2011 年 11 月 22 日
size() is a built-in function that you can look up in the help and get a lot faster answer than you can get by posting here and having someone tell you or refer you to the help.

カテゴリ

Help Center および File ExchangeSurface and Mesh Plots についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by