روش های مختلف shrinking و zooming
روش های بزرگنمایی با نوعی oversampling این کار را انجام می دهند. دو روش متداول zooming عبارتند از :
1- Nearest neighbor interpolation : این روش با تکرار کردن مقادیر پیکسل ها عملیات بزرگ نمایی را انجام می دهد.
2- bilinear interpolation: این روش توسط پیدا کردن درون یابی خطی بین پیکسل های مجاور عملیات بزرگ نمایی را انجام می دهد. این کار می تواند توسط پیدا نمودن مقدار متوسط دو پیکسل مجاور و استفاده از آن به عنوام مقدار پیکسل بین آن دو استفاده نماید. می توان این روش را ابتدا برای سطرها و سپس برای ستون ها انجام داد.
در این شبیه سازی روش نزدیکترین همسایه توسط تابع nearest و شبیه سازی روش bilinear توسط تابع bilinearInterpolation انجام می شود.
روش shriniking تصویر نیز با حذف برخی پیکسل ها صورت می پذیرد. (undersampling)
کد متلب:
% b. Zooming and Shrinking
% Shrinking
clc;
clear all;
close all;
A=imread(‘cameraman.tif’);
display(‘Input Image ==> cameraman.tif’);
f=input(‘Enter the shrinking factor of the image: ‘);
s=size(A);
s1=s/f;
k=1;
l=1;
for i=1:s1
for j=1:s1
B(i,j)=A(k,l);
l=l+f;
end
l=1;
k=k+f;
end
figure,imshow(A)
title(‘Original Image’);
figure,imshow(B)
title(‘Shrinked Version’);
%% Zooming
%Nearest Neighbor Interpolation
f1=input(‘Enter the factor by which the image is to be Zoomed: ‘);
P = nearest(A,f1);
imshow(P)
title(‘Zoomed Image (Nearest Neighbor Interpolation)’)
%Bilinear Interpolation
out_dims = input(‘Enter the dimention of image to be Zoomed: [x y] (x,y>256)(example:[512 512]) ‘);
[out] = bilinearInterpolation(A, out_dims);
imshow(out)
title(‘Zoomed Image (Bilinear Interpolation)’)