عکس پیش‌فرض نوشته

نرم افزار Matlab یکی از پر کاربردترین نرم افزارهایی است که در  رشته‌های مختلف از جمله مهندسی برق، مکانیک، رایانه و… کاربرد بسیاری دارد. واژه متلب از ترکیب دو واژه MATrix (ماتریس) و LABoratory (آزمایشگاه) ایجاد شده‌است.

Matlab_Learning

کار کردن با ماتریس‌ها در متلب بسیار ساده است. در حقیقت تمام داده‌ها در متلب به شکل یک ماتریس ذخیره می‌شوند.

در این قسمت ما قصد داریم تا با پردازش تصویر در متلب  (بخش چهارم) آشنا شویم.

 — فیلترهای خطی و طراحی فیلتر

برای اعمال یک فیلتر بر روی تصویر می توان از تابع  filter2  استفاده کرد:

m2=filter2(h , m)

 در رابطه h ماتریس فیلتر و m ماتریس تصویر اولیه است. h می تواند هر ماتریس با ابعاد دلخواه باشد، اما معمولا یک ماتریس  3*3  یا  5*5  است.

– فیلترهای آماده

با استفاده از تابع  fspecial  میتوان فیلترهای معمول در پردازش تصویر را برای استفاده با تابع  filter2  ایجاد کرد. روش استفاده از این تابع بصورت زیر است:

h=fspecial(‘ نام فیلتر‘ , ابعاد فیلتر)

بسته به نوع آرگومان اول ممکن است این تابع با یک یا بيش از دو آرگومان نیز بکار برده شود.

نام فیلتر می تواند یکی از پارامترهای زیر باشد:

gaussian:  پایین گذر

sobel: بالا گذر

prewitt: بالا گذر

laplacian: فیلتر لاپلاس

log: اعمال فیلتر گوسي و پس از آن لاپلاس

average: فیلتر میانگین

unsharp: پایین گذر

 — آنالیز و بهسازی تصویر :

آنالیز و بهسازی تصویر شامل سه عملیات زير است:

– بدست آوردن ارزش نقاط تصویر و اعمال عملیات آماری بر روی آنها

– آنالیز تصویر بمنظور استخراج اطلاعات در مورد ساختار کلی آن

– بهسازی تصویر به منظور واضح‌تر شدن جزئیات تصویر و حذف نویز بمنظور آماده‌سازی برای عملیات پردازشی بعدی

حال به بررسی هر یک می پردازیم.

 

– بدست آوردن ارزش نقاط تصویر و اعمال عملیات آماری بر روی آنها

توابع  pixval  و  impixel :

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

  P = IMPIXEL(I)

  P = IMPIXEL(X,MAP)

  P = IMPIXEL(RGB)

در این حالت این تابع پنجره تصویر را نمایان ساخته امکان انتخاب نقاط مورد نظر را به کاربر می دهد.  پس از زدن یک کلید یا دکمه سمت راست ماوس، مشخصات این نقاط در ماتریس p ذخيره خواهد شد.

تابع pixval  به پایین پنجره تصویر کادری را اضافه می کند که با حرکت ماوس بر روی تصویر مشخصات رنگی نقاط نصویر در این کادر نمايش داده می شود. این تابع باید پس از نمایش تصویر با تابع imshow صدا زده شود.

تابع improfile : این تابع  نمودار تغییرات رنگ تصویر را در یک مسیر دلخواه که با ماوس انتخاب می شود رسم می کند:

تابع imcontour: رسم نمودار تراز داده‌های تصویر

تابع imhist: رسم نمودار فراوانی نقاط تصویر

توابع mean2 و std2:

توابع mean  و std در متلب به ترتیب برای بدست آوردن میانگین و انحراف معیار بکار برده می شوند. اما این توابع بصورت برداری عمل می کنند یعنی میانگین یا انحراف معیار عناصر یک بردار را محاسبه میکنند. اگر این توابع را بر روی یک ماتریس اعمال کنیم مانند اکثر توابع متلب بصورت ستونی روی عناصر آن ماتريس عمل خواهند کرد. یعنی میانگین یا انحراف معیار هر ستون ماتریس را بصورت جداگانه بدست می آورند. برای آنکه بتوان میانگین یا انحراف معیار تمامی نقاط یک ماتریس را بدست آورد باید از توابع  mean2  و  std2  استفاده کرد.

 

– بهسازی تصویر:

این عملیات که به عملیات پیش‌پردازش نیز مشهور است معمولا پیش از عملیات پردازش اصلی یا عملیات آنالیز تصویر انجام می گيرد. در این عملیات بهبودهایی بر روی داده‌های تصویر اعمال می شود تا امکان استخراج دقیقتر و صحيح‌ تر اطلاعات میسر گردد. این عملیات در سه بخش زیر شرح داده خواهد شد:

تنظیم شدت

متعادل کردن هیستوگرام يا بهسازی تباین

حذف نویز

 

– تنظیم شدت – تابع imadjust :

با استفاده از این تابع می توان دامنه تغییرات روشنایی یک تصویر را تغییر داد. شکل کلی کاربرد این تابع بصورت زير است:

J=imadjust(I , [low , high] , [bottom , top])

آرگومان دوم برداری دو عنصری است که بیانگر دامنه‌ حاوی روشنایی هایی از تصویر است که عملیات تنظیم شدت بر روی آنها باید اعمال گردد. آرگومان سوم، دامنه تغییرات جديد روشنایی برای نقاط فوق است.

 

– متعادل کردن هیستوگرام یا بهسازی تباین

تابع histeq :  تابع histeq بصورت اتوماتیک بهترین تنظیم هیستوگرام را بر روی تصویر انجام می دهد و معمولا کیفیت روشنایی تصویر را به میزان زیادی بهبود می بخشد.

 

– حذف نویز

معمولا تصاویر دیجیتال کم و بیش دارای نویز هستند. حذف نویز قبل از هرگونه عمیيات پردازشی باید انجام گیرد. فیلترهای متعددی برای حذف نویز طراحی شده‌اند. در متلب نيز چندین فیلتر برای حذف نویز وجود دارد که از این میان به ساده‌ترین آنها اشاره خواهیم کرد:

– فیلتر میانگین

– فیلتر میانه

 

برای ايجاد فیلتر میانگین از تابع  fspecial  که قبلا توضیح داده شد و تابع  filter2  می توان استفاده کرد. برای اعمال فیلتر میانه از تابع  medfilt2  استفاده کنند. بطورکلی تمامی فیلترهای حذف نویز از وضوح (sharpness) تصویر می کاهند. در میان دو فیلتر میانگین و میانه، فیلتر میانه معمولا نتیجه بهتری ایجاد می کند و وضوح تصویر را نیز کمتر تحت تاثیر قرار می دهد.

برای کسب اطلاعات بیشتر به راهنمای متلب مراجعه کنید.

ادامه مطالب در بخش پنچم ارائه خواهد شد.

این آموزش بیش از ۳ سال قبل ارسال شده و اکنون در لیست به‌روزرسانی‌های سایت قرار دارد. اگر پیشنهاد یا انتقادی برای بهبود آموزش دارید، خوشحال می‌شیم به ما اطلاع بدهید.