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

Blur در جاوا
فیلتر Blur یا Box Blur در کتابخانه OpenCV پیاده سازی شده است و براحتی میتوان از آن در برنامههای خود استفاده کرد. در این فیلتر، نقطه وسط با میانگین پیکسلهای ناحیه Kernel جایگزین میشود (آموزش Kernel در جاوا). در این آموزش از کلاس Imgproc متد blur استفاده خواهد شد. برای پیاده سازی مطابق معمول یک تصویر را میخوانیم:
Mat src = Imgcodecs.imread("baboon.png");
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
متد blur ورودیهای زیر را دریافت میکند:
- تصویر ورودی
- تصویر خروجی (تصویر خروجی در این متغیر ذخیره میگردد)
- سایز Kernel
- نقطه وسط یا anchor point
با توجه به ورودیهای متد blur، تا اینجا ما تصویر ورودی را ایجاد کردهایم. در کد زیر Kernel و anchor point را ایجاد میکنیم:
Point point = new Point(3, 3);
Size size = new Size(7, 7);
تصویر خروجی نیز در کد زیر ایجاد میکنیم:
Mat dst = new Mat();
حال تمامی پارامترهای متد blur آماده شده است و در کد زیر این متد را صدا میزنیم:
Imgproc.blur(src, dst, size, point);
تصویر ورودی برنامه به صورت زیر است:

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

برای ذخیره فایل تصویر خروجی از کد زیر استفاده میکنیم:
Imgcodecs.imwrite("Blur Image.jpg", dst);