Gaussian pyramid vs imresize
조회 수: 16(최근 30일)
I've been using imresize frequently to downscale an image of high resolution to about a quarter a lot, but after doing some research i realized that information is also lost when that happens. Typically if i have an image to test with resolution of about 2000x3000, I'll use imresize to downscale it to about 600x800. I've recently read about gaussian pyramid and according to wikipedia, "subsequent images are weighted down using a Gaussian average (Gaussian blur) and scaled down." I wonder if Gaussian Pyramid would be better for this case?
Sourav Bairagya 2019년 9월 17일
In ‘imresize’ function, by default bicubic interpolation is used to resize an image. However, there is also option to specify the interpolation methods or custom interpolation kernel. Moreover, in ‘imresize’, you can resize an image by any arbitrary factor or into any specified dimension.
On the contrary, ‘impyramid’ uses the gaussian pyramid technique to resize an image and for each call of this function it will resize the image by a factor of 2. Hence, if you want to resize your image by a factor which is a multiple of 2, then you can use ‘impyramid’. But, if you want to reduce your image to any arbitrary dimension, then that cannot be done by this function. You should use ‘imresize’ function then. Generally, for multi-resolution processing application, gaussian pyramid resizing is used.
At the time of reducing size of an image, some information will be lost as there will be fewer pixels in the output image. This can introduce artifacts, such as aliasing. Now, ‘imresize’ uses antialiasing to limit the impact of aliasing on the output image by default for all interpolation types except nearest neighbor. In case of ‘impyramid’, first a gaussian kernel (low pass filtering) is applied and then the image is sub-sampled.
For more information you can follow this links: