image processing, java, OpenCv in Java, پردازش تصویر, پردازش تصویر در جاوا, جاوا

فیلتر bilateral در جاوا

فیلتر bilateral در جاوا

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

bilateral

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

  • sigmaColor: این پارامتر تعیین کننده مقدار سیگما در فضای رنگی است که هر چه مقدار آن بیشتر باشد رنگ‌هایی که فاصله بیشتری از هم دارند در فیلتر نقش خواهند داشت.
  • sigmaSpace: مقدار سیگما در مختصات، هر چه مقدار بیشتری داشته باشد پیکسل‌های دورتری (با توجه به اینکه مقدار رنگ آن‌ها مطابق با پارامتر sigmaColor باشد) در فیلتر نقش خواهند داشت.

فیلتر bilateral در جاوا

در پیاده سازی فیلتر bilateral ما از کتابخانه OpenCV  استفاده می‌کنیم. در این کتابخانه برای کار با این فیلتر، از کلاس Imgproc متد bilateralFilter استفاده شده است این متد دارای ورودی‌های زیر است:

  • تصویر ورودی
  • تصویر خروجی (تصویر فیلتر شده در این متغیر ذخیره می‌گردد)
  • قطر پیکسل های همسایه برای اعمال در فیلتر
  • sigmaColor
  • sigmaSpace

برای پیاده سازی ابتدا یک تصویر می‌خوانیم:

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat src = Imgcodecs.imread("baboon.png");

سپس تصویر خروجی را ایجاد می‌کنیم:

Mat dst = new Mat();

در پایان فیلتر bilateral در جاوا را پیاده سازی می‌کنیم:

Imgproc.bilateralFilter(src, dst, 15, 80, 80);

در کد بالا ما قطر پیکسل های همسایه را برابر با 15 و sigmaColor و sigmaSpace برابر با 80 قرار دادیم. همچنین برای اینکه تصویر خروجی را ذخیره کنیم کد زیر را می‌نویسیم:

Imgcodecs.imwrite("bilateral baboon.jpg", dst);

تصویر ورودی برنامه به صورت زیر است:

فیلتر bilateral در جاوا

تصویر خروجی برنامه به صورت زیر است:

فیلتر bilateral در جاوا

نوشته های مشابه

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

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