no-img
انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب

تشخیص دایره با کمک تبدیل هاف و پردازش تصویر در متلب | انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب


انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب
مطالب ویژه
گزارش خرابی لینک
اطلاعات را وارد کنید .

ادامه مطلب

ZIP
تشخیص دایره با کمک تبدیل هاف و پردازش تصویر در متلب
zip
ژانویه 29, 2020
5mb
۲۷,۰۰۰ تومان
0 فروش
۲۷,۰۰۰ تومان – خرید

تشخیص دایره با کمک تبدیل هاف و پردازش تصویر در متلب


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

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

در ابتدا، تعریف ابتدایی از «تصاویر دیجیتال» (Digital Images) و محیط برنامه‌نویسی متلب ارائه خواهد شد. سپس، مجموعه‌ای از عملیات ابتدایی پردازش تصویر در متلب مورد بررسی قرار خواهد گرفت. از جمله مهم‌ترین فرایندهای پردازشی مقدماتی روی تصاویر دیجیتال، می‌توان به مواردی نظیر «خواندن تصویر» (Image Reading)، «نمایش تصویر» (Image Display) و «ذخیره‌سازی تصویر» (Image Storing) اشاره کرد. در ادامه نیز، مجموعه‌ای از توابع پردازش تصویر پیشرفته در متلب مورد بررسی قرار خواهد گرفت و چگونگی استفاده از آن‌ها برای پردازش تصویر در متلب شرح داده خواهد شد.

پروژه متلب یک مشکل رایج در بینایی ماشین تعیین موقعیت، تعداد یا جهت اشیاء خاص در تصویر می‌باشد. به عنوان مثال مسئله می‌تواند تعیین جاده‌های مستقیم در تصاویر هوایی باشد. این مشکل با استفاده از تبدیل هاف برای خطوط قابل حل می‌باشد. اغلب اشیاء مورد علاقه شکل‌هایی غیر از خط دارند مثل دایره، بیضی یا هر شکل دلخواه دیگر. با وجود اینکه پیچیدگی تبدیل هاف با افزایش تعداد پارامترهای مورد نیاز برای توصیف شکل مورد نظر افزایش می یابد، تبدیل عادی و عمومی هاف می‌تواند روی هر نوع شکلی استفاده شود. در ادامه به بررسی تبدیل هاف برای دایره (تبدیل هاف مُدَوَّر) خواهیم پرداخت.

نمایش پارامتری

پروژه متلب تبدیل هاف به عنوان تبدیل یک نقطه در صفحه x-y به فضای پارامتری توصیف می‌شود. فضای پارامتر بر اساس شکل شیء مورد نظر تعریف می‌شود. یک خط راست که از نقاط (x1,y1) و (x2,y2) عبور می‌کند در صفحه x-y با معادله زیر تعریف می‌شود :

{\displaystyle y=a.x+b}
این رابطه یک تساوی برای خط راست در یک سیستم مختصات کارتِزیَن است که a و b پارامترهای خط هستند. تبدیل هاف برای خط این رابطه را استفاده نمی‌کند زیرا خط عمود بر بردار x دارای مقدار a بینهایت است که سبب می‌شود فضای پارامتری a و b حجم بینهایت داشته باشد. به جای نمایش خط به صورت بالا، خط را در فضای پارامتری به صورت زیر نمایش می‌دهند :

{\displaystyle \rho =x.cos\theta +y.sin\theta }
در این حالت فضای پارامتری شامل {\displaystyle \rho } و {\displaystyle \theta } است که حجم محدود خواهد داشت.
دایره در مختصات کارتِزیَن به صورت زیر بیان می‌شود:

{\displaystyle r^{2}=\left(x-a\right)^{2}+\left(y-b\right)^{2}}
در مقایسه با خط، دایره در فضای پارامتری راحت‌تر بیان می‌شود زیرا پارامترهای دایره مستقیم می‌تواند به فضای پارامتری ارسال شود. در رابطه بالا a و b مختصات مرکز دایره در راستای محورهای xوy است و r شعاع دایره می‌باشد. نمایش پارامتری رابطه بالا به صورت زیر است :

{\displaystyle x=a+r.cos\theta }
{\displaystyle y=b+r.sin\theta }
پروژه متلب کاملاً واضح است که فضای پارامتری مربوط به دایره {\displaystyle R^{3}} بوده در حالیکه فضای پارامتری خط {\displaystyle R^{2}} می‌باشد. چون با افزایش پارامترهای مورد نیاز برای تعریف شیء مورد نظر، ابعاد R فضای پارامتری افزایش می یابد، تبدیل هاف پیچیده تر خواهد شد. برای ساده‌سازی فضای پارامتری دایره، شعاع به صورت یک عدد ثابت در این فضا ثبت می‌شود.

انباره

پروژه متلب پروسه یافتن دایره در یک تصویر به کمک تبدیل هاف به صورت زیر است : ابتدا تمام لبه‌ها در تصویر مشخص می‌شوند. این بخش ارتباطی به تبدیل هاف ندارد و هر تکنیک تشخیص لبه دلخواه مثل سوبل یا کَنی یا هر عمل ریخت‌شناسی دیگر می‌تواند مورد استفاده قرار گیرد.
سپس در هر نقطه لبه یک دایره به مرکزیت نقطه مورد نظر با شعاع دلخواه ترسیم می‌شود. این دایره در فضای پارامتری طوری ترسیم می‌شود که محور x مؤلفه a و محور y مؤلفه b و محور z شعاع دایره را مدل می‌کند. در مختصاتی که متعلق به محیط دایره ترسیم شده هستند، مقدار ماتریس انباره که اندازه‌ای برابر با فضای پارامترها دارد، افزایش داده می‌شود. بدین طریق تمامی نقاط لبه تصویر اصلی با ترسیم دایره‌ای به شعاع دلخواه و افزایش مقادیر در انباره، بررسی می‌شوند. پس از این، انباره شامل اعدادی است که بیانگر تعداد دایره‌های عبورکننده از یک مختصات منحصربه‌فرد می‌باشد. بنابراین اعداد بزرگتر که به صورت هوشمند با توجه به شعاع انتخاب می‌شوند، متناظر با مراکز دایره‌های در تصویر اصلی می‌باشند.

الگوریتم

پروژه متلب الگوریتم تبدیل هاف دایره‌ای به صورت زیر خلاصه می‌شود :

  1. یافتن لبه ها
  2. برای هر نقطه لبه : // تبدیل هاف شروع می‌شود//
    1. یک دایره با مرکزیت نقطه لبه با شعاع r رسم می‌شود و در انباره تمام مختصاتی که محیط دایره از آن‌ها عبور می‌کند، افزایش می یابند.
  3. نقاط ماکزیمم در انباره پیدا می‌شود. // تبدیل هاف تمام می‌شود//
  4. پارامترهای پیدا شده (r,a,b) مطابق با نقاط ماکزیمم پیدا شده روی تصویر اصلی مشخص می‌شوند.

پیاده‌سازی

با توجه به الگوریتم ارائه شده در قسمت ۴ می‌توان به پیاده‌سازی الگوریتم اقدام کرد. ولی قبل از آن چند نکته بایستی مد نظر قرار گیرد.

چگونه داده‌ها ذخیره می‌شود؟

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

چگونه در فضای گسسته دایره رسم می‌شود؟

پروژه متلب دایره در فضای گسسته با استفاده از رابطه (۴) مستقیماً رسم می‌شود، اما یک مشکل وجود دارد. چگونه مقادیر گسسته یا وضوح {\displaystyle \theta } انتخاب شود ؟ یک راه حل اینست که وضوح بالای {\displaystyle \theta } استفاده شود و مقادیر گرد شوند. اما این کار سبب ترسیم بیش از یک بار پیکسل‌های لبه شده یا اگر شعاع خیلی بزرگ باشد سبب کمبود پیکسل‌ها می‌شود. راه دیگر گرد کردن sin و cos پس از ضرب مقادیر با شعاع می‌باشد. برای اطمینان از ترسیم تمام پیکل‌ها، وضوح {\displaystyle \theta } بایستی بسیار بالا باشد، اما این کار سبب افزایش یافتن هزینه محاسباتی می‌شود. یک روش که می‌تواند هزینه محاسبات را پایین بیاورد، محاسبه سریع مقادیر برای توابع sin و cos با استفاده از جدول مراجعه می‌باشد. اگر چه روش‌های عنوان شده عملی هستند، ولی راه حل‌های بهتری نیز وجود دارد. به جای استفاده از رابطه (۴)، الگوریتم بِرزِنهام را می‌توان برای رسم دایره استفاده کرد. این الگوریتم جهت ترسیم خط یا دایره برای مانیتورهای دیجیتالی بدون مشکل ترسیم بیش از یک بار پیکسل‌ها طراحی شده و برای تبدیل هاف دایره‌ای مناسب می‌باشد . یک ویژگی خوب در این الگوریتم اینست که می‌توان فهمید که تعداد دقیق پیکسل‌های مورد استقاده برای ترسیم دایره چقدر است و این اطلاعات زمانی می‌تواند مناسب باشد که مرکز دایره‌ها از داده‌های انباره پیدا می‌شوند. کد پیاده‌سازی این الگوریتم در [] موجود است.

چگون دایره از درون داده‌های تبدیل هاف پیدا می‌شود؟

پروژه متلب اگرچه این بحث مربوط به تبدیل هاف نیست ولی برای استخراج اطلاعات دایره‌ها از داده‌های انباره مفید است. اگر دربارهٔ تعداد دایره‌ها و شعاع‌های آن‌ها اطلاعاتی وجود ندارد، این پروسه خیلی دردسر ساز است. یک رویکرد آنست که قله‌های صفحه a و b هر یک متناظر با یک شعاع خاص هستند در انباره داده پیدا شود. اگر ارتفاع قله (ها) در مقایسه با تعداد پیکسل‌های لبه مربوط به دایره‌ای با شعاع خاص برابر باشد، مختصات قله (ها) شاید متناظر مرکز چنین دایره‌ای باشد. اما مثلاً در حالتی که دایره کامل نباشد یا یک شکل بیضی مانند داشته باشیم، مرکز دایره می‌تواند با ارتفاعی کمتر از تعداد پیکسل‌های لبه نمایش داده شود. در نهایت اگر مشخص کردن دقیق قله‌ها سخت است، انباره داده را می‌توان هموار کرد.

 

خروجی متلب :

 

پروژه متلبپروژه متلبپروژه متلبپروژه متلبپروژه متلب

به این پست امتیاز دهید.
هر چقدر ما رو دوست دارید ستاره بدید!!!


برچسب‌ها :
ads

درباره نویسنده

mrk kiani 366 نوشته در انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب دارد . مشاهده تمام نوشته های

دیدگاه ها


دیدگاهتان را بنویسید