روش های فیلترینگ مکانی با تابع fspecial در متلب (5)

آموزش برنامه نویسی متلب

روش های فیلترینگ مکانی تابع fspecial در متلب

و تابع fspecial – Gaussian – Disk – Average  

 آموزش پردازش تصویر و برنامه نویسی در متلب 5

می خوانیم :

1- مراحل  spatial filtering

2- کار با اپراتور correlation

3- اصطلاحات symmetric  ,  replicate  ,  circular

4-  دوران ماتریس

5-  توابع fspecial

6-  تابع Disk

7-  تابع Average

8-  تابع  Gaussian 

9- فرمول کلی تابع 

10- تعریف اجیتکشن

11- تعریف بند ریجکت

برای انجام فیلترینگ مکانی در متلب مراحلی داریم که ابتدا به توضیح آن میپردازیم :

1- برای شروع کار باید مختصات نقطه ای (x, y ) تصویر را داشته باشیم در متلب شروع این مختصات از نقطه 1و1 است تا آخر .

2- روی نقطه (x, y ) کارهای مربوط به فیلترینگ مکانی را شروع میکنیم .

3- در مرحله 2 عددی به دست آوردیم که باید آن را در نقطه مختصات  (x, y ) بگذاریم .

4- تا تمام شدن تمام نقاط تصویر 3مرحله گذشته را باید نقطه به نقطه تکرار کنیم .

این مراحل را در یک نمونه تصویری کوچک بنام M . N  بررسی میکنیم مبدا مختصات (x, y ) را 1و1 قرار میدهیم وقتی 8 نقطه همسایه این مختصات را در نظر بگیریم یک ماتریس [3  3] داریم به این ترتیب نقطه به نقطه عملیات خطی این ماتریس را اجرا میکنیم .

 

ماتریس فیلترینگ مکانی

هر کدام را تک تک باید با عدد متناظرش ضرب کنیم وجوابشان را با هم جمع میکنیم .

فرمول این مراحل در ریاضی به شکل زیر است .

مختصات فیلتر خطی

در اپراتورهای پایه با ابعاد فرد از طریق فیلتر خطی مکانی میتوانیم همه نقاط مختصات (x, y ) را به دست آوریم به این عمل          Linear Spatial Filter میگویند .

مختصات فرد متلب

تابع fspecial در فیلترینگ مکانی متلب یک فرمول کلی باز شده به شکل زیر دارد .

 

 

فرمول باز شده

در ریاضی دو اپراتور convolution –  correlation  قرینه هم میباشند .

دوران ماتریس در متلب

w را  180 درجه دوران میدهیم .

در متلب برای تابع correlation یک اجرا کننده ای به نام تابع خطی im filter  داریم .

ماتریس [3  3] متلب

ضرب یک به یک اعداد متناظر ماتریس [3  3] .

تابع میانگین باعث اسموس شدن تصویر و کم شدن نویز میشود .

 

  1. Clc ;
    Clear ;
    Close all ;
    Img 1 = imread ( ‘ rice . png ‘ ) ;
    A = 1 ;
    W = ones ( 2 * a + 1 ) ;
    W = w / sum (w ( : ) ) ;
    img 2 = imfilter ( img 1 , w ) ;
    figure ;
    subplot ( 1 , 2 , 1 ) ;
    imshow ( img 1 ) ;
    title ( ‘original Image ‘ ) ;
    subplot ( 1 , 2 , 2 ) ;
    imshow (img 2 ) ;
    title (‘ After Average Filter ‘ ) ;
    
    
    

فیلترینگ مکانی تابع fspecial متلب

تابع Average تصویر را مات کرد اگر اندازه a  را بیشتر کنیم به همان اندازه ماتی تصویر زیادتر میشود .

ببینیم این تابع برای حواشی تصویر چگونه عمل میکند :

 

جدول اصطلاحات

فیلتر circular از تکرار آخرین نقطه در سطر یا ستون حاشیه تصویر را کامل میکند .

فیلتر symmetric از روش تقارن به تکمیل کردن حاشیه تصویر می پردازد .

فیلتر replicate از تکرار کردن نقطه ای ثابت به تکمیل حاشیه تصویر می پردازد .

بدون این سه روش با یک عدد ثابت هم میتوانیم به تکمیل حاشیه تصویر بپردازیم .

 

فیلترینگ مکانی تابع fspecial متلب

تابع Average باعث نمایش یک حاشیه تیره در تصویر مات شده میشود .

فیلترینگ مکانی تابع fspecial متلب

از فیلتر symmetric برای از بین بردن حاشیه تیره اطراف تصویر استفاده میکنیم .

از تابع Output Size Options هنگام اضافه کردن به اول یا آخر تصویر میتوانیم استفاده کنیم ، این تابع دو روش دارد که در full  همه تغییرات را به طور کلی نمایش میدهد ، و در روش same  فقط به اندازه تصویر اصلی به نمایش میگذارد .

 

  1. Img 1 = imread (‘ rice . png ‘ ) ;
    A= 15 ;
    W= ones ( 2* a + 1 ) ;
    W=w / sum ( w ( : ) ) ;
    Img 2 = imfilter ( img , w , ‘ circular ‘ , ‘ full ‘ ) ;
    Figure ;
    Subplot ( 1 , 2 , 1) ;
    Imshow ( img 1 ) ;
    Title ( ‘Original Image ‘ ) ;
    Subplot ( 1 , 2 , 2 ) ;
    Imshow ( img 2 ) ;
    Title ( ‘ After Average Filter ‘ ) ;
    
    

فیلترینگ مکانی تابع fspecial متلب

اگر ماتریس را با دو روش  corr و conv ترکیب کنیم چه طور میشود ؟

با یک دستور رو به رو میشویم و با چرخاندن تغییری در مانریس ایجاد نمیشود .

 

ترکیب ماتریس با دو روش

 با چرخاندن یا دوران میتوانیم جهت یک عملکرد را تغییر بدهیم مثلا جهت افقی را به عمودی تبدیل کنیم .

در فیلترینگ مکانی تابع fspecial متلب تابع fspecial با فیلتر های خودکاربه ساخت ماتریس می پردازد .

 

فیلترهای تابع fspecial

 

  1. fspecial average
    Clc ;
    Clear ;
    Close all ;
    Img 1 = imread ( ‘ rice . png ‘ ) ;
    W = fspecial ( ‘ average ‘ , [ 1  10 ] ) ;
    Img 2 = imfilter ( img 1 , w , ‘ circular ‘ ) ;
    Figure ;
    Subplot ( 1 , 2 , 1 ) ;
    Imshow ( img 1 ) ;
    Title ( ‘ Original Image ‘ ) ;
    Subplot ( 1 , 2 , 2 ) ;
    Imshow ( img 2 ) ;
    Title ( After Average Filter ‘ ) ;

 

فیلترینگ مکانی تابع fspecial متلب

حرکت افقی در ستون ها را بهم میریزد .

اِکو : ترکیب صدا در بُعد زمان با متغیر قبل یا بعد را گوییم .

از روش های حذف پیچیدگی در برگرداندن تصاویر خراب یا مخدوش کمک میگیریم .

تابع  Average – Disk – fspecial – Gaussian همه به نوعی در برطرف کردن پیچیدگی کمک میکنند .

تابع Disk :

 

  1. >> w = fspecial ( ‘ disk ‘ , 50 ) ;
    >> max ( w ( : ) )
    Ans =
    1.2732 e – 04
    >> 1 / max ( w ( : ) )
    Ans = 
    7.8540 e + 03
    >> w = w / max ( w ( : ) ) ;
    >> imshow ( w )

 

تابع Disk متلب

دستور بالا این تصویر گرد با حاشیه نرم را میدهد وزن این دیسک 0 است اما میانگین وزنی دارد .

ایراد دیسک این است که فقط تا یک شعاع خاصی قادر به تاثیر گذاری است .

  1. Clc ;
    Clear ;
    Close all ;
    Img 1 = imread ( ‘ rice . png ‘ ) ;
    R = 3 ;
    Wa = fspecial ( ‘ average ‘ , 2 * r + 1 ) ;
    Wd = fspecial (‘ disk ‘ ,r ) ;
    Img 2 = imfilter (img 1 , wa , ‘ circular ‘ ) ;
    Img 3 = imfilter ( img 1 , wd , ‘ circular ‘ ) ;
    Figure ;
    Subplot ( 1 , 3 , 1 ) ;
    Imshow ( img 2 ) ;
    Title ( ‘ After Average Filter ‘ ) ;
    Subplot ( 1 , 3 , 2 ) ;
    Imshow ( img 3 ) ;
    Title ( ‘ After Disk Filter ‘ ) ;

 

فیلترینگ مکانی تابع fspecial متلب

فیلتر Average  برنقاط دور اثر گذاشته و تصویر را مات کرده ، فیلتر disk تصویر واضحی ارائه کرده .

در یک تصویر با رنگ ثابت بزرگترین فرکانس 0 است .

 همه نوسان ها در یک تصویر برفکی وجود دارد .

فیلتر پایین گذر تصویر را تار میکند و نور و رنگ شدید را از خود عبور نمیدهد .

فرمول کلی تابع

اجیتکشن خط سفید رنگ ایجاد شده بین پیکسل ها هنگام تغییر رنگ در فرکانس های بالا را میگوییم .

برای عبور قسمت خاصی از فرکانس اگر تغییرات شدید نباشد میتوانیم از فیلتر میان گذر کمک بگیریم .

اصطلاح بند ریجکت مربوط به زمانی است که فرکانس میانی نداریم فقط فرکانس های خیلی پایین یا خیلی بالا را عبور میدهیم .

از این توابع در ساخت برنامه پلاک خوان پارکینگ جهت استفاده در سیستمهای اتوماسیون پارکینگ ، نرم افزار کنترل تردد پارکینگ خودرو مورد استفاده قرار میگیرد.

فیلترهای پایین گذر متلب توابع Average و disk و Gaussian  هستند .

هر چه تصویر پهنتر باشد نشان پراکندگی بیشتر ماتریس است .

  1. >> fspecial ( ‘ Gaussian ‘ , 101 ) ;
    >> w = fspecial ( ‘ Gaussian ‘ , 101 ) ;
    >> w =  w \ max ( w ( : ) ) ;
    >> imshow ( w )
    
    
    

تابع Disk در متلب

نقطه ریز روی تصویر به خاطر افت سریع و نشان نوک تیز بودن آن است .

  1. >> w = fspecial ( ‘ Gaussian ‘ , 101 , 10 ) ;
    >> w = w \ max ( w (  : ) ) ;
    > imshow ( w )

نمونه دیگر تابع Disk متلب

وزن را زیاد کردیم  سبب نورانیتر شدن و نرمتر شدن تصویر شد .

ادامه آموزش در مبحث 6