پروژه پردازش تصویر اعمال تعدادی از کرنلهای معروف بر روی یک تصویر با متلب
مواردی که در این پروژه آموزشی بررسی شده است:
بخش 2 : پردازش تصویر پردازش تصویر به مجموعه روشهایی می گویند که در آن به افزایش کیفیت یک تصویر پرداخته می شود و یا ویژگی های مورد نظ ر از تصویر استخراج میشوند. در واقع پردازش تصویر به یک نگاشت از فضایی با m × n بعد یا m × n × 3 بعد بسته به این که تصویر رنگی است یا خیر به فضایی دیگر تعبیر می شود. بر د این نگاشت درصورتی که خروجی پردازش همچنان تصویر باشد، m × n و در صورتی که ویژگی باشد میتواند ابعاد مختلفی داشته باشد.
در این حوزه، نگاشت ها )فیلتر ها( به دو دسته spatial domain filters و frequency domain filters تقسیم بندی می شوند. در این تمرین قصد داریم با spatial domain filterها بیشتر آشنا شویم. در این گروه از پردازش ها مقدار هر پیکسل در خروجی پردازش به مقدار دیگر پیکسلها و مقدار خود پیکسل بستگی دارد، از این منظر این نوع پردازش یک رفتار محلی از خود نشان می دهد.
این پردازش های محلی می توانند به صورت خطی و غیر خطی انجام شوند. گروهی از این فیلتر های خطی بر اساس عملیات کانولوشن کار میکنند. شما با عملیات کانولوشن در حوزه زمان آشنایی دارید. این عملیات، که با فرمول زیر معرفی می شود ، معادل برگرداندن یک سیگنال و لغزاندن آن بر روی سیگنال دیگر است، در حوزه زمان گسسته هم این عملیات به سادگی تعمیم پیدا می کند و در حقیقت پایه عملکرد فیلتر های FIR و پنجره گذاری))Windowing قرار می گیرد.
حالت چند بعدی این عملیات هم کامل به همین صورت است که یک سیگنال وارون می شود و در جهاتی که سیگنال درجه آزادی دارد بر روی سیگنال دیگری لغزانده می شود. در مورد تصاویر، به فیلتر دو بعدی که باید بر روی تصاویر لغزانده شود، kernel میگویند. برای این که با این مفهوم بیشتر آشنا شوید می توانید به اینجا مراجعه کنید. انجام پروژه متلب
در ادامه قصد داریم تاثیر تعدادی از کرنلهای معروف را بر روی یک تصویر مشاهده کنیم.
ابتدا تصویر house.jpeg را با استفاده از دستور imread() بارگیری کنید و سپس کرنل های زیر را با استفاده از تابع conv2() بر روی آن اعمال کنید. درباره عملکرد هر کرنل در گزارش کار خود توضیحی ارائه کنید. برای اطالعات بیشتر درباره هر کرنل میتوانید از راهنمای نرم افزار متلب کمک بگیرید. 3 دقت کنید پس از آزمودن هر کرنل باید تصویر فیلتر شده را نمایش دهید و در گزارش کار خود بیاورید. برای نمایش تصویر می توانید از تابع imshow() بهره ببرید . تذکر: به دلیل وجود وزن های منفی در برخی از kernel ها ممکن است مقدار پیکسل منفی شود که قابل نمایش نیست. در این حالت از قدر مطلق استفاده کنید.
شکل .2 تعدادی از فیلتر های معروف
در بسیاری از مواقع، اندازه تصویری که در اختیار داریم مطلوب ما نیست. اگر تصویری با اندازه کوچک نیاز داشته باشیم، مشکل چندانی وجود ندارد و به سادگی میتوان از downsampling استفاده کرد، اما در صورتی که نیاز به بزرگنمایی یک تصویر داشته باشیم، انتخابهای متفاوتی برای interpolation kernel خواهیم داشت .
تصویر kobe.jpeg را بارگیری کنید و سپس با استفاده از دستور imresize() آن را با نسبت 51 اسکیل کنید. حال مجددا تصویر را با همان دستور این بار با نسبت 5 و method = nearest اسکیل و بازیابی کنید . علت تفاوت تصویر بازیابی شده و تصویر اصلی را توضیح دهید. سپس با استفاده از کرنل های گوسی و moving avg کیفیت تصویر را بهبود ببخشید و نتیجه را گزارش کنید .
در ادامه قصد داریم با استفاده از روشی که تا کنون آموختیم برنامه ای بنویسیم که لبه های یک کاغذ را از روی تصویر مشخص کند. عملکرد این برنامه همانند برنامه Cam Scanner است که لبه های کاغذ را پیدا کرده و با یک مستطیل رنگی آن را در تصویر مشخص میکند. برای پیدا کردن لبه های افقی می توانید از کرنل H line و برای شناسایی لبه های عمودی از کرنلV line استفاده کنید. همچنین برای رسم مستطیل می توانید از تابع rectangle() استفاده کنید.
برنامه توصیف شده را بنویسید و صحت عملکرد آن را با اعمال روی تصویر page.png بسنجید. همچنین دقت کنید که برای پیدا کردن لبه های کاغذ باید بنا بر خالقیت و نظر خود الگوریتمی را پیشنهاد دهید و استفاده از اعداد ثابت مجاز نیست. الگوریتم مورد نظر خود را در گزارش کار به صورت کامل توضیح دهید.
پروژه پردازش تصویر اعمال تعدادی از کرنلهای معروف بر روی یک تصویر با متلب توسط کارشناسان گروه ۱.۲.۳ پروژه پیاده سازی گردیده است .
فایلهای پروژه آموزشی به صورت کامل پس از خرید فایل بلافاصله در اختیار شما قرار خواهد گرفت.
سفارش پروژه مشابه
درصورتیکه این پروژه دقیقا مطابق خواسته شما نمی باشد، با کلیک بر روی کلید زیر پروژه دلخواه خود را سفارش دهید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.