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

فیلتر گاوسی در جاوا

فیلتر گاوسی در جاوا

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

Blur یا تار کردن تصویر

تصاویر به صورت عادی بسیار Sharp (مفهوم شارپ بودن عکس به این معناست که عکس ما به‌خوبی جزئیات را نشان می‌دهد) بوده و تمامی اطلاعات را می‌توان از آن دریافت کرد. به طور کلی این قابلیت (Sharp بودن تصویر) به دلیل وجود لبه یا Edge است. با کمک Blur یا تار کردن تصویر از لبه‌ها یا Edge های تصویر کاسته می‌شود  تا تغییر رنگ از یک لبه به لبه دیگر به آرامی (ملایم) انجام شود. در زیر یک نمونه از تصویر Blur را می‌بینید:

فیلتر گاوسی در جاوا

فیلتر گاوسی در جاوا

یکی از راه‌های تار کردن تصویر، استفاده از فیلتر گاوسی می‌باشد. این فیلتر از تابع گاوسی استفاده می‌کند. برای پیاده سازی ما از کلاس Imgproc و متد GaussianBlur استفاده می‌کنیم. ابتدا تصویر baboon.png را می‌خوانیم:

Mat src = Imgcodecs.imread("baboon.png");

سپس تصویر خروجی (تصویری که فیلتر گاوسی در آن ذخیره می‌شود) را ایجاد می‌کنیم. باید سایز آن با تصویر ورودی (baboon.png) برابر باشد.

Mat dst = new Mat(src.rows(), src.cols(), src.type());

حال فیلتر گاوسی در جاوا را با متد GaussianBlur صدا می‌زنیم:

Imgproc.GaussianBlur(src, dst, new Size(11, 11), 0);

متد GaussianBlur ورودی های زیر را دریافت می‌کند:

  • تصویر ورودی
  • تصویر خروجی
  • سایز kernel (باید حتما فرد باشد مانند 3*3 یا 5*5)
  • میزان انحراف معیار محور x

حال می‌توان تصویر blur ایجاد شده را با متد imwrite ذخیره کرد:

Imgcodecs.imwrite("Gaussian blur baboon.jpg", dst);

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

فیلتر گاوسی در جاوا

خروجی کد بالا به صورت زیر است:

فیلتر گاوسی در جاوا

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

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

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