شیوه استفاده از imfilter در متلب(جلسه10)
موسسه پایا پروژه به عنوان متصدی انجام پروژه های پردازش تصویر با متلب وظیفه ی خود می داند که در راستای آموزش نرم افزار متلب گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی متلب مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.
Imfilter در متلب از توابعی است که از فیلترها با چگالی خنثی یا به اصطلاح neutral-density filter استفاده میکند. این تابع به این دلیل مورد استفاده قرار میگیرد که اندازه آرایه خروجی با ورودی برابر است و تمامی شدت رنگ ها را به طور یکسان کاهش میدهد. برای دریافت اطلاعات بیشتر با ما همراه باشید
فیلترهای با چگالی خنثی چه فیلترهایی هستند؟
neutral-density filter یا فیلترهای با چگالی خنثی که به صورت ND filter نیز نوشته میشوند، فیلتری است که تمام شدت رنگ ها را به طور مساوی کاهش و یا تغییر میدهد و تغییری در شیوه نمایش رنگ ایجاد نمیکند. imfilter در متلب یکی از توابعی است که از ND filter استفاده میکند. با پایا پروژه در این آموزش متلب همراه باشید.
شیوه استفاده از imfilter در متلب
شیوه استفاده از این تابع به یکی از دو شکل زیر است.
- B = imfilter(A,h)
- B = imfilter(A,h,options,…)
در روش اول آرایه چند بعدی A را با فیلتر h ترکیب میکند و نتیجه را در B ذخیره میکند.
در شکل نوشتاری دوم نیز options مجموعه ای از انتخاب ها است که بر روی فیلتر تاثیر میگذارند. این مقدار به روش های انتخاب مقدارهای خارج از آرایه ورودی اشاره میکند که برای نمونه برای options، symmetric، مقدار خارج از آرایه با انعکاس آینه وار آن جایگزین میشود.
برای مقادیری مانند corr و conv، imfilter با استفاده از correlation و convolution فیلتراسیون را انجام میدهد
دو مقدار same و full نیز به اندازه آرایه خروجی اشاره میکنند که در same، آرایه خروجی باید هم اندازه آرایه ورودی باشد و در full به دلیل فیلتراسیون کامل، آرایه خروجی بزرگتر است.
شیوه استفاده از این فیلتر در زیر آمده است.
- مرحله اول: وارد کردن تصویر
originalRGB = imread(‘peppers.png’);
imshow(originalRGB)
تصویر اولیه
- مرحله دوم: ایجاد فیلتر motion-blur با استفاده از تابع fspecial
h = fspecial(‘motion’, 50, 45);
- مرحله سوم: استفاده از تابع
filteredRGB = imfilter(originalRGB, h);figure, imshow(filteredRGB)

تصویر پس از استفاده از imfilter
این فیلتر به این دلیل کاربرد بیشتری دارد که از نظر حافظه، عملکرد بهتری دارد؛ دلیل آن هم این است که آرایه خروجی هم اندازه آرایه ورودی است.
شیوه دیگر استفاده
در این مرحله از replicate نیز به عنوان options استفاده شده است. در replicate مقادیر خارج از محدوده آرایه ورودی با نزدیک ترین مقدار به مرز آرایه جابه جا میشود.
boundaryReplicateRGB = imfilter(originalRGB, h, ‘replicate’);
figure, imshow(boundaryReplicateRGB)

تصویر پس از استفاده از imfilter
علاوه بر symmetric و replicate دو مقدار numeric scalar, X و circular نیز برای تعیین مقدار خارج از محدوده آرایه ورودی وجود دارند. که در عنوان اول مقادیر خارج از آرایه با مقدار X جابه جا میشود(در صورت عدم تعیین مقدار X مقدار آن صفر تعیین میشود) و در circular نیز مقادیر با فرض متناوب بودن آرایه ورودی محاسبه میشوند.
برای انجام پروژه های متلب و همچنین سفارش پروژه متلب با ما ارتباط بگیرید.
