www.gusucode.com > images 案例代码 matlab源码程序 > images/ResizeAnImageWithImresizeFunctionExample.m
%% Resize an Image with imresize Function % This example shows how to resize an image using the |imresize| function. %% Specify the Magnification Value % Read an image into the workspace. I = imread('circuit.tif'); %% % Resize the image, using the |imresize| function. In this example, you % specify a magnification factor. To enlarge an image, specify a % magnification factor greater than 1. J = imresize(I,1.25); %% % Display the original image next to the enlarged version. figure, imshow(I) figure, imshow(J) %% Specify the Size of the Output Image % Resize the image again, this time specifying the desired size of the % output image, rather than a magnification value. Pass |imresize| a vector % that contains the number of rows and columns in the output image. If the % specified size does not produce the same aspect ratio as the input image, % the output image will be distorted. If you specify one of the elements in % the vector as |NaN|, |imresize| calculates the value for that dimension % to preserve the aspect ratio of the image. To perform the resizing % required for multi-resolution processing, use % <docid:images_ref.bu46squ-1>. K = imresize(I,[100 150]); figure, imshow(K) %% Specify the Interpolation Method % Resize the image again, this time specifying the interpolation method. % When you enlarge an image, the output image contains more pixels than the % original image. |imresize| uses interpolation to determine the values of % these pixels, computing a weighted average of some set of pixels in the % vicinity of the pixel location. |imresize| bases the weightings on the % distance each pixel is from the point. By default, |imresize| uses % bicubic interpolation, but you can specify other interpolation methods or % interpolation kernels. See the <docid:images_ref.buxswkh-1> reference % page for a complete list. You can also specify your own custom % interpolation kernel. This example using bilinear interpolation. L = imresize(I,1.5,'bilinear'); figure, imshow(L) %% Prevent Aliasing When Shrinking an Image % Resize the image again, this time shrinking the image. When you reduce % the size of an image, you lose some of the original pixels because there % are fewer pixels in the output image. This can introduce artifacts, such % as aliasing. The aliasing that occurs as a result of size reduction % normally appears as stair-step patterns (especially in high-contrast % images), or as moire (ripple-effect) patterns in the output image. By % default, |imresize| uses antialiasing to limit the impact of aliasing on % the output image for all interpolation types except nearest neighbor. To % turn off antialiasing, specify the 'Antialiasing' parameter and set the % value to false. Even with antialiasing turned on, resizing can introduce % artifacts because information is always lost when you reduce the size of % an image. M = imresize(I,.75,'Antialiasing',false); figure, imshow(M)