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

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

Matlab_Learning

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

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

 — عملیات بر روی تصاویر باینری

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

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

برای نمایش تصاویر باینری نیز از تابع imshow استفاده می شود. درصورتیکه تصویر از نوع شدت باشد فرم

imshow(m);

و اگر از نوع اندیس‌ شده باشد به فرم

imshow(I ,map);

بکار برده خواهد شد.

 

— عملیات ساختاری Morphological Operations :

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

از میان این عملیات در ادامه چهار نوع از مهم ترین آنها شرح داده خواهد شد که عبارتند از:

– عملیات افزایش

– عملیات فرسایش

– عملیات گشودن

– عملیات بستن

 

– عملیات افزایش و فرسایش (Dilation & Erosion) :

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

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

ابعاد همسایگی و انتخاب همسایه ها توسط یک ماتریس ماسک (Mask) مشخص می شوند. مثلا اگر ماتریس ماسک یک ماتریس 3* 3 باشد که تمامی عناصر آن  برابر با 1 باشد. یعنی یک همسایگی 3*3 بکار برده شود و تمامی 9 همسایه نقطه مورد بررسی برای عملیات افزایش یا فرسایش مد نظر قرار گیرند.

برای عملیات افزایش در متلب از تابع imdilate و برای عمليات فرسایش از تابع imerode استفاده می شود. اگرچه هر دو عملیات را با استفاده از تابع کلی bwmorph نیز می توان انجام داد.

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

bw2=imerode(bw1, se);

bw2=imdilate(bw1 , se);

 

– عملیات گشودن و بستن Open & Close :

از ترکیبهای مختلف دو عملیات افزایش و فرسایش می توان عملیات دیگری ایجاد کرد. مهمترین این عملیات، عملیات گشودن و بستن است. در عملیات گشودن اجزایی از تصویر باینری که از یک اندازه تعیین شده کوچکتر باشند حذف می شوند بدون آنکه ابعاد سایر اجزا تغییر کند. در عملیات بستن نیز نواحی جاافتاده تصویر باینری بدون تغییر در ابعاد سایر اجزا ترمیم می گردند.

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

در متلب برای اعمال عملیات گشودن و بستن و همچنین سایر عملیات مورفولوژی از تابع bwmorph باید استفاده کرد. اگرچه می توان این دو عملیات را از عملیات فرسایش و افزایش نیز بدست آورد.

 

– عملیات از پیش تعریف شده: تابع immorph

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

 bw2 = bwmorph(bw1 , operation , [n]);

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

erode  fill    hbreak    open    skel   remove   close  dilate

 

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

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