روشهای مختلف Zooming و Shrinking در پردازش تصویر (MATLAB)
روشهای مختلف Zooming و Shrinking در پردازش تصویر
در پردازش تصویر، تغییر ابعاد تصویر یکی از عملیاتهای پایهای و بسیار مهم است. این تغییر ابعاد شامل
بزرگنمایی (Zooming) و کوچکسازی (Shrinking) است.
هر دو عملیات مستقیماً بر ماتریس پیکسلها انجام شده و هدف آنها افزایش یا کاهش تعداد نمونهها (Sampling) است.
در این مطلب روشهای رایج Zooming و Shrinking به همراه تصاویر و کد کامل MATLAB بررسی شده است.
بزرگنمایی تصویر (Zooming)
عملیات بزرگنمایی معمولاً با Oversampling انجام میشود و پیکسلهای جدید با روشهای متفاوتی میان پیکسلهای موجود ایجاد میگردند.
در ادامه دو روش رایج بزرگنمایی توضیح داده شده است.
1. Nearest Neighbor Interpolation
در این روش مقدار هر پیکسل جدید برابر مقدار نزدیکترین پیکسل موجود است.
ویژگیهای این روش:
- سریع و کمهزینه از نظر محاسباتی
- ایجاد اثر پلهای در بزرگنمایی زیاد
- مناسب برای تصاویر ماسک، باینری و دادههای طبقهبندیشده
2. Bilinear Interpolation
در روش Bilinear مقدار پیکسل جدید بر اساس میانگینگیری و درونیابی خطی میان چهار پیکسل نزدیک محاسبه میشود.
این روش خروجی نرمتر و باکیفیتتری نسبت به روش Nearest Neighbor ایجاد میکند.
- کاهش اثر پلهای در تصویر
- مناسب برای تصاویر طبیعی (Real Images)
- محاسبات بیشتر نسبت به روش قبل
در شبیهسازی زیر، روش نزدیکترین همسایه با تابع nearest و روش
Bilinear با تابع bilinearInterpolation اجرا میشود.
کوچکسازی تصویر (Shrinking)
در Shrinking ابعاد تصویر کاهش مییابد. این عمل با حذف برخی پیکسلها و بهصورت
Undersampling انجام میشود.
در روش ساده استفادهشده در کد زیر از هر f پیکسل، تنها یکی انتخاب میشود.
کد کامل MATLAB جهت Zooming و Shrinking
% 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)')
جمعبندی
در این آموزش با روشهای اصلی بزرگنمایی و کوچکسازی تصویر در پردازش تصویر آشنا شدیم.
روشهای Nearest Neighbor و Bilinear از پرکاربردترین روشها در سیستمهای بینایی ماشین، بازسازی تصویر و مراحل preprocessing هستند.
اگر نیاز به انجام پروژههای تخصصی پردازش تصویر و پیادهسازی الگوریتمهای مرتبط دارید، از طریق لینک زیر میتوانید درخواست ثبت کنید:







