Anti-Aliasing Filter for matlab imresize

Hi, I am doing a project on computer graphics and have been asked to implement the matlab's imresize function in C++, using bicubic interpolation.
As you know, if the scale factor is less than one,we need a anti-aliasing filter while interpolation. However I have no experience in filter design and at the moment I'm still relatively new to matlab and the image processing toolbox. I've tried using the fspecial gaussian filter but it doesnt seem to have muxh effect. Can you give me any tips on how to produce an appropriate filter in matlab, or point me to relevant information.
Any help is appeciated,
many thanks,
Xifei WU 2011.6.14

3 commentaires

David Young
David Young le 14 Juin 2011
I've often observed people using the fspecial Gaussian option incorrectly. Note that you need to set the SIGMA parameter to an appropriate value for the spatial smoothing scale (this would be related to the scale factor for resizing) and to set the HSIZE argument to be large enough to cover most of the support for the filter. Usually making HSIZE 5 or 6 times SIGMA is plenty. Perhaps you should check this first.
Wu
Wu le 14 Juin 2011
Thanks for your suggestion. The bicubic interpolation wanted need to be written by C++ and get the same results as they are get by imresize of matlab.
Can you tell me the name of lowpass FIR filter used in imresize of matlab when shrinking an matrix, and how they are used in imresize, or give me any tips on it.Thank you!
David Young
David Young le 14 Juin 2011
I'm sorry, but I don't know about the internal operation of imresize. I guess with some effort it would be possible to work out the anitaliasing method by applying imresize to simple examples.

Connectez-vous pour commenter.

Réponses (2)

Jan
Jan le 14 Juin 2011

2 votes

You can look inside the IMRESIZE function itself. All necessary methods are implemented there.

1 commentaire

Wu
Wu le 14 Juin 2011
after enter the command line of "open imresize" in matlab, we can see the code of imresize.But the most of functions is used to deal with the command line you enter, and the function to deal with data is:
out = imresizemex(in, weights', indices', dim), however, the function of imresizemex can not be seen.

Connectez-vous pour commenter.

Yoav
Yoav le 17 Juil 2011

0 votes

What does the function imresizemex do? (I don't care about the specific implementation, just to understand how to output is defined by the input). Thanks in advance, Yoav

1 commentaire

Wu
Wu le 23 Juil 2011
imresizemex is a function used in imresize of matlab 2010.If you want to know how the funciton of imresize work, you can look the source code of imresize in the environment of matlab 2007, which is more deatail than matlab 2010.

Connectez-vous pour commenter.

Question posée :

Wu
le 14 Juin 2011

Community Treasure Hunt

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

Start Hunting!

Translated by