فیلتر نقطه میانی در پایتون (Midpoint Filter in Python)

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

  1. خواندن تصاویر در پایتون
  2. حلقه For در پایتون
  3. توابع در پایتون
  4. لیست در پایتون
  5. فیلتر مینیمم در پایتون
  6. فیلتر ماکزیمم در پایتون

فیلتر نقطه میانی

در فیلتر نقطه میانی رنگ هر پیکسل با مقدار میانگین مینیمم و ماکزیمم پیکسل‌های همسایگی خود تعیین می‌شود. به عنوان مثال تصویر زیر را ببینید. پیکسل‌های همسایه عدد 10 در آن برابر با 2 و 4 و 6 و 8 و 12 و 14 و 16 و 18 است. برای محاسبه نقطه میانی کافی است میانگین دو عدد ماکزیمم و مینیمم یعنی 2/(18+2) را محاسبه کنیم.

فیلتر نقطه میانی در پایتون

فیلتر نقطه میانی در پایتون

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

بیشتر بخوانید:  ساخت تصویر معکوس در جاوا (Create Mirror Image)

متدهای مورد استفاده کد فوق:

  • تابع findRedMidpoint: این تابع میانگین ماکزیمم و مینیمم قرمز رنگ همسایگان پیکسل X و Y (پیکسل ورودی تابع) را در خروجی به ما می‌دهد.
  • تابع findGreenMidpoint: این تابع میانگین ماکزیمم و مینیمم سبز رنگ همسایگان پیکسل X و Y (پیکسل ورودی تابع) را در خروجی به ما می‌دهد.
  • تابع findBlueMidpoint: این تابع میانگین ماکزیمم و مینیمم آبی رنگ همسایگان پیکسل X و Y (پیکسل ورودی تابع) را در خروجی به ما می‌دهد.
  • تابع midpointFilter: در این تابع ادرس تصویر در ورودی دریافت و با اعمال فیلتر نقطه میانی بر روی تمامی پیکسل‌ها، تصویر را در آدرس خروجی ذخیره می‌کند. فایل خروجی پس از اجرای برنامه ایجاد می‌شود.

خروجی فیلتر نقطه میانی

خروجی کد فوق به صورت زیر می‌باشد:

فیلتر نقطه میانی در پایتون

همانطور که در تصویر خروجی می بینید فیلتر نقطه میانی برای تصاویری استفاده می‌شود که دنباله کوتاه (کم برد) استفاده می‌شود.

پسورد فایل: www.codegate.ir

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *