Downsample for 3 different scales

13 次查看(过去 30 天)
Hey, I want to downsample for 3 different scales as described below:
1/2 in the rows and 1/4 in the columns
1/4 in the rows and 1/2 in the columns
1/8 in rows and 1/8 in columns
How can I use the imresize function? For example:
downNearest=imresize(img, 1/2, 1/4, ....)

回答(1 个)

Dave B
Dave B 2021-10-30
To use imresize with uneven width and height specify the target number of rows and columns:
im=imread('peppers.png');
nr = height(im);
nc = width(im);
im_2_4=imresize(im,[nr/2 nc/4]);
im_4_2=imresize(im,[nr/4 nc/2]);
im_8_8=imresize(im,[nr/8 nc/8]); % or imresize(im,1/8);
size(im)
ans = 1×3
384 512 3
size(im_2_4)
ans = 1×3
192 128 3
size(im_4_2)
ans = 1×3
96 256 3
size(im_8_8)
ans = 1×3
48 64 3
If you want to use nearest neighbor interpolation when resizing, simply append nearest to the command as follows:
imresize(im,[nr/2 nc/4],'nearest');

类别

Help CenterFile Exchange 中查找有关 Multirate Signal Processing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by