آشنایی با متلب ( پردازش تصویر- بخش هفتم)سهشنبه 09, ژوئن 2020
آشنایی با محیط Matlab
در ادامه آموزش های سایت همیارپروژه برنامه نویسی متلب ارائه خواهد شد .آموزشها از مقدماتی تا پیشرفته ادامه دارد و ما به شما کدنویسی در نرم افزار متلب را یاد خواهیم داد. با ما همراه باشید.
پردازش تصویر در متلب:
محاسبه مشتق اول در متلب :
تعداد زیادی از عملگر های آشکار سازی لبه بر پایه مشتق اول شدت روشنایی کار می کنند, یعنی با گرادیان شدت روشنایی داده های اصلی سروکار داریم. با این اطلاعات می توانیم تصویری را برای قله های گرادیان روشنایی جستجو کنیم. اگر I(x) نماینده شدت روشنایی پیکسل x و I(x) نماینده مشتق اول ( گرادیان شدت روشنایی) در پیکسل x باشد, بنابراین داریم:
برای پردازش تصویر با عملکرد بهتر, مشتق اول را می توان ( در یک بعد) با پیچش دادن با ماسک زیر به دست آورد.
محاسبه مشتق دوم در متلب:
برخی دیگر از الگوریتم های آشکار سازی لبه بر اساس مشتق دوم شدت روشنایی کار می کنند که در واقع نرخ تغییرات گرادیان شدت روشنایی است و برای آشکار سازی خط ها بهتر است , زیرا بدانگونه که در بالا گفتیم هر خط یک لبه دوگانه است , بنابراین در یک سوی خط یک گرادیان روشنایی و در سوی دیگر گرادیان مخالف آن دیده می شود . پس می توانیم منتظر تغییر بسیار زیاد در گرادیان شدت روشنایی در محل یک خط باشیم . برای یافتن خط ها می توانیم گذر از صفر های تغییر گرادیان را در نتایج جستجو کنیم. اگر I(x) نمایشگر شدت نور در نقطه x و I”(x) مشتق دوم در نقطه x باشد:
اینجا نیز بیشتر الگوریتم ها از یک ماسک پیچش برای پردازش سریع داده های تصویر سود می برند.
عملگرهای آشکار سازی لبه در متلب
- مرتبه نخست: چلیپای رابرتز, پرویت, سوبل, کنی, اسپیسک
- مرتبه دوم: لاپلاسی, مار-هیلدرث
اکنون, عملگر کنی و پس از آن مار- هیلدرث بیشترین کاربرد را دارد. عملگرهای زیادی تا کنون منتشر شده اند اما هیچیک برترب قابل ملاحظه ای بر عملگر کنی در شرایط کلی نداشته اند. کار بر روشهای چند مقیاسی هنوز بیشتر در آزمایشگاه هاست.
عملیات لبه برداری بر روی تصاویر در متلب:
آشکار سازی لبه (edge detection) معمولا برای تشخیص لبه های یک شی از بین چند شی دیگر مورد استفاده قرار می گیرد, برای این کار از تابعی به نام edge استفاده می شود.
تغییرات فیزیکی به صورت تغییر رنگ و تغییر شدت روشنایی به صورت لبه در تصویر نمایان می شوند. در محیط با مقادیر پیوسته, مشتق, تغییرات ناگهانی و شدت آن را مشخص می کند و در محیط گسسته محاسبه تغییرات نسبت به پیکسل های مجاور , تقریبی از مشتق را نمایان می سازد. در عملیات لبه برداریورودی یک تصویر به فرمت intensity می باشد و در خروجی تصویر binary داده میشود, که در تصویر حاصل مرزهای بیرونی تصویر به صورت ۱ و مرزهای داخل به صورت ۰ نشان داده می شوند.
Edge لبه ها را در تصاویر intensity پیدا می کند , این تابع یک تصویر باینری یا intensity را به عنوان ورودی می گیرد و یک تصویر باینری bw به همان اندازه تصویر اولی بر می گرداند, که جاهایی که تابع لبه ها را در تصویر پیدا می کند, در تصویر خروجی ۱ می کند و جاهای دیگر را ۰ قرار می دهد.
برخی از الگوریتم های لبه برداری در متلب:
- الگوریتم sobel
- الگوریتم canny
- الگوریتم Roberts
- الگوریتم prewitt
- الگوریتم zero-cross
الگوریتم sobel
این متد لبه ها را با استفاده از تخمین زدن مشتق پیدا می کند, که لبه ها را در آن نقاطی بر می گرداند که گرادیان تصویر I , max است.
که مقدار thresh یک میزان آستانه را برای این متد مشخص می کند, این تابع (edge) از همه لبه هایی که قویتر ( بیشتر) از thresh نیستند چشم پوشی می کند, و اگر ما مقدار این thresh را مشخص نکنیم یا اگر thresh خالی باشد {[]} , تابع edge خود به طور اتوماتیک مقداری را انتخاب می کند.
در این syntax , direction جهت را مشخص می کند, یعنی رشته ای است که مشخص می کند که این تابع لبه های افقی یا عمودی و یا هر دو جستجو کند. که به طور پیشفرض هر دو را جستجو می کند.
در این دستور تابع یک رشته اختیاری به عنوان ورودی می گیرد که رشته (nothinning) سرعت عملیات الگوریتم را بالا می برد, به این علت که در مرحله نازک شدن لبه ها از لبه های اضافی می گذرد ( می پرد) و اگر رشته ‘thinning’ را انتخاب کنیم, الگوریتم لبه های نازک شده را نیز درخواست می کند.
این دستور, مقدار threshold (آستانه) را بر می گرداند.
در این دستور, لبه های افقی و عمودی (gv,gh) را با توجه به عملگرهای گرادیان بر می گرداند. دو متد Robert و prewitt نیز هم به همین گونه هستند.
در اینجا آشنایی با محیط متلب بخش چهل و پنجم به پایان رسیده است و در آموزش های بعدی به مباحث دیگر آموزش متلب می پردازیم. همچنین از شما مخاطبین عزیز سایت همیارپروژه دعوت می کنم که برای انجام پروژه متلب خود آموزش های ما را دنبال نمایید.
نویسنده: زهرا رستمی
دیدگاهتان را بنویسید