فیلترهای Median و Wiener را روی تصاویر در جاوا اعمال کنید

در پست وبلاگ قبلی، نحوه افزودن افکت تاری به تصاویر را نشان دادیم. امروز قصد داریم نحوه اعمال فیلترهای مدیان و وینر را به شما نشان دهیم که معمولاً برای حذف نویز و صاف کردن تصاویر استفاده می شود. بنابراین بیایید ببینیم که چگونه فایل‌های مدیان و وینر را به صورت برنامه‌نویسی در جاوا روی یک تصویر اعمال کنیم.

Java API برای اعمال فیلترهای تصویر Median و Wiener - دانلود رایگان

برای اعمال فیلترهای میانی و وینر روی تصاویر، از Aspose.Imaging for Java استفاده می کنیم. این یک API ویرایش تصویر قدرتمند برای دستکاری تصاویر از داخل برنامه های جاوا است. می‌توانید API را دانلود یا با استفاده از تنظیمات Maven زیر نصب کنید.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository> 

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging</artifactId>
    <version>22.9</version>
</dependency>

فیلتر میانه را روی یک تصویر در جاوا اعمال کنید

فیلتر میانه یک تکنیک فیلتر دیجیتال غیرخطی است که روشی محبوب برای حذف نویز تصاویر است. مراحل زیر برای اعمال فیلتر میانه روی یک تصویر در جاوا آمده است.

  • ابتدا تصویر را با استفاده از روش Image.load() بارگذاری کنید.
  • سپس، تصویر را به نوع RasterImage ارسال کنید.
  • یک نمونه از کلاس MedianFilterOptions ایجاد کنید و آن را با اندازه مستطیل مقداردهی اولیه کنید.
  • فیلتر میانه را با استفاده از روش RasterImage.filter(Rectangle, MedianFilterOptions) اعمال کنید.
  • در نهایت، تصویر حاصل را با استفاده از روش RasterImage.save() ذخیره کنید.

نمونه کد زیر نحوه اعمال فیلتر میانی را روی یک تصویر در جاوا نشان می دهد.

// تصویر نویزدار را بارگیری کنید
Image image = Image.load("jack.jpg");

// تصویر را در RasterImage قرار دهید
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// یک نمونه از کلاس MedianFilterOptions ایجاد کنید و اندازه را تنظیم کنید.
MedianFilterOptions options = new MedianFilterOptions(4);

// فیلتر MedianFilterOptions را روی شی RasterImage اعمال کنید.
rasterImage.filter(image.getBounds(), options);

// تصویر حاصل را ذخیره کنید
image.save("Jac_median_denoise.jpg");

در زیر تصویر قبل و بعد از اعمال فیلتر میانه آمده است.

فیلتر میانه را روی Image Java اعمال کنید

فیلتر Gauss Wiener را روی یک تصویر در جاوا اعمال کنید

Gauss wiener یکی دیگر از روش‌های رایج مورد استفاده برای درجه‌بندی تصویر با به حداقل رساندن نویز اضافی و تاری است. در زیر مراحل اعمال فیلتر گاوس وینر بر روی یک تصویر در جاوا آمده است.

  • ابتدا تصویر را با استفاده از روش Image.load() بارگذاری کنید.
  • سپس، تصویر را به نوع RasterImage ارسال کنید.
  • یک نمونه از کلاس GaussWienerFilterOptions ایجاد کنید و آن را با اندازه شعاع و مقدار صاف مقداردهی اولیه کنید.
  • (اختیاری) برای دریافت یک تصویر در مقیاس خاکستری، از روش GaussWienerFilterOptions.setGrayscale(true) استفاده کنید.
  • فیلتر گاوس وینر را با استفاده از روش RasterImage.filter(Rectangle, GaussWienerFilterOptions) اعمال کنید.
  • در نهایت، تصویر حاصل را با استفاده از روش RasterImage.save() ذخیره کنید.

نمونه کد زیر نحوه اعمال فیلتر گاوس وینر را بر روی یک تصویر در جاوا نشان می دهد.

// تصویر را بارگذاری کنید
Image image = Image.load("jack.jpg");

// تصویر را در RasterImage قرار دهید
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// یک نمونه از کلاس GaussWienerFilterOptions ایجاد کنید و اندازه شعاع و مقدار صاف را تنظیم کنید.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.setGrayscale(true);

// فیلتر GaussWienerFilterOptions را روی شی RasterImage اعمال کنید.
rasterImage.filter(image.getBounds(), options);

// تصویر حاصل را ذخیره کنید
image.save("Jac_guass_weiner.jpg");

در زیر تصویر قبل و بعد از اعمال فیلتر گاوس وینر با گزینه greyscale می باشد.

فیلتر Gauss Weiner را در مقیاس خاکستری تصویر اعمال کنید

تصویر زیر قبل و بعد از اعمال فیلتر گاوس وینر بدون خاکستری است.

فیلتر رنگی Gauss Weiner را روی تصویر اعمال کنید

فیلتر Motion Wiener را روی یک تصویر در جاوا اعمال کنید

فیلتر موشن وینر برای حذف تاری تصویری که به دلیل اجسام متحرک تولید می شود استفاده می شود. در زیر مراحل اعمال فیلتر حرکت وینر روی یک تصویر در جاوا آمده است.

نمونه کد زیر نحوه اعمال فیلتر motion wiener را بر روی یک تصویر در جاوا نشان می دهد.

// تصویر را بارگذاری کنید
Image image = Image.load("jack.jpg");

// تصویر را در RasterImage قرار دهید
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// یک نمونه از کلاس MotionWienerFilterOptions ایجاد کنید و طول، مقدار صاف و زاویه را تنظیم کنید.
MotionWienerFilterOptions options = new MotionWienerFilterOptions(10, 2, 10);
//options.setGrayscale(true);

// فیلتر MotionWienerFilterOptions را روی شی RasterImage اعمال کنید.
rasterImage.filter(image.getBounds(), options);

// تصویر حاصل را ذخیره کنید
image.save("Jac_motion_weiner.jpg");
فیلتر Motion Weiner را روی تصویر در جاوا اعمال کنید

Java Median و Wiener Image Filtering API - مجوز رایگان دریافت کنید

می‌توانید یک مجوز موقت رایگان دریافت کنید و فیلترهای میانی و وینر را بدون محدودیت ارزیابی روی تصاویر اعمال کنید.

نتیجه

در این مقاله نحوه اعمال فیلترهای مدیان و وینر بر روی تصاویر در جاوا را یاد گرفتید. علاوه بر این، نحوه کاهش نویز اجسام متحرک در یک تصویر را توضیح داده ایم. شما به راحتی می توانید از این ویژگی ها در برنامه جاوا خود برای یکپارچه سازی قابلیت های ویرایش تصویر استفاده کنید.

ادامه مطلب

می‌توانید با استفاده از مستندات درباره API پردازش تصویر جاوا بیشتر کاوش کنید. همچنین، می توانید سوالات خود را از طریق [تالار گفتمان3 با ما در میان بگذارید.

همچنین ببینید