ใน บล็อกโพสต์ก่อนหน้า เราได้สาธิตวิธีเพิ่มเอฟเฟ็กต์เบลอให้กับภาพ วันนี้เราจะแสดงให้คุณเห็นวิธีการใช้ตัวกรองค่ามัธยฐานและตัวกรองแบบ Wiener ซึ่งมักใช้เพื่อลดจุดรบกวนและทำให้ภาพนุ่มนวลขึ้น มาดูวิธีการนำไฟล์ค่ามัธยฐานและไฟล์ Wiener ไปใช้กับอิมเมจโดยทางโปรแกรมใน Java
- Java API เพื่อใช้ตัวกรองรูปภาพ Median และ Wiener
- ใช้ Median Filter กับรูปภาพใน Java
- ใช้ตัวกรอง Gauss Wiener กับรูปภาพ
- Motion Wiener การกรองรูปภาพ
Java API เพื่อใช้ตัวกรองรูปภาพ Median และ Wiener - ดาวน์โหลดฟรี
หากต้องการใช้ตัวกรองค่ามัธยฐานและตัวกรองแบบ Wiener กับรูปภาพ เราจะใช้ Aspose.Imaging for Java เป็น API การแก้ไขรูปภาพที่มีประสิทธิภาพในการจัดการรูปภาพจากภายในแอปพลิเคชัน Java คุณสามารถ ดาวน์โหลด 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>
ใช้ Median Filter กับรูปภาพใน Java
ตัวกรองค่ามัธยฐานเป็นเทคนิคการกรองแบบดิจิทัลแบบไม่เชิงเส้น ซึ่งเป็นวิธีที่นิยมในการลดจุดรบกวนของภาพ ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรองค่ามัธยฐานกับรูปภาพใน Java
- ขั้นแรก โหลดรูปภาพโดยใช้เมธอด Image.load()
- จากนั้น ส่งภาพไปที่ประเภท RasterImage
- สร้างอินสแตนซ์ของคลาส MedianFilterOptions และเริ่มต้นด้วยขนาดของสี่เหลี่ยมผืนผ้า
- ใช้ตัวกรองค่ามัธยฐานโดยใช้เมธอด RasterImage.filter(Rectangle, MedianFilterOptions)
- สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการใช้ตัวกรองค่ามัธยฐานกับรูปภาพใน Java
// โหลดภาพที่มีสัญญาณรบกวน
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");
ด้านล่างคือภาพก่อนและหลังใช้ตัวกรองค่ามัธยฐาน
ใช้ตัวกรอง Gauss Wiener กับรูปภาพใน Java
Gauss wiener เป็นอีกวิธีที่ใช้กันทั่วไปในการจัดระดับภาพโดยลดสัญญาณรบกวนเพิ่มเติมและการเบลอให้เหลือน้อยที่สุด ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรอง gauss wiener กับรูปภาพใน Java
- ขั้นแรก โหลดรูปภาพโดยใช้เมธอด Image.load()
- จากนั้น ส่งภาพไปที่ประเภท RasterImage
- สร้างอินสแตนซ์ของคลาส GaussWienerFilterOptions และเริ่มต้นด้วยขนาดรัศมีและค่าที่ราบรื่น
- (ไม่บังคับ) หากต้องการรับภาพโทนสีเทา ให้ใช้เมธอด GaussWienerFilterOptions.setGrayscale(จริง)
- ใช้ตัวกรอง gauss wiener โดยใช้วิธี RasterImage.filter(Rectangle, GaussWienerFilterOptions)
- สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการใช้ตัวกรอง Gauss Wiener กับรูปภาพใน Java
// โหลดภาพ
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");
ด้านล่างคือภาพก่อนและหลังใช้ตัวกรองเกาส์วีเนอร์ด้วยตัวเลือกระดับสีเทา
ต่อไปนี้คือภาพก่อนและหลังใช้ตัวกรอง Gauss Wiener โดยไม่มีการปรับโทนสีเทา
ใช้ตัวกรอง Motion Wiener กับรูปภาพใน Java
ฟิลเตอร์ Motion Wiener ใช้เพื่อลบภาพเบลอที่เกิดจากวัตถุที่กำลังเคลื่อนที่ ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรอง Motion Wiener กับรูปภาพใน Java
- ขั้นแรก โหลดรูปภาพโดยใช้เมธอด Image.load()
- จากนั้น ส่งภาพไปที่ประเภท RasterImage
- สร้างอินสแตนซ์ของคลาส MotionWienerFilterOptions และเริ่มต้นด้วยความยาว ค่าที่ราบรื่น และมุม
- ใช้ฟิลเตอร์ Motion Wiener โดยใช้วิธี RasterImage.filter(Rectangle, MotionWienerFilterOptions)
- สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการใช้ตัวกรอง Motion Wiener กับรูปภาพใน Java
// โหลดภาพ
Image image = Image.load("jack.jpg");
// โยนภาพลงใน RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// สร้างอินสแตนซ์ของคลาส MotionWienerFilterOptions และตั้งค่าความยาว ค่าที่ราบรื่น และมุม
MotionWienerFilterOptions options = new MotionWienerFilterOptions(10, 2, 10);
//ตัวเลือก setGrayscale (จริง);
// ใช้ตัวกรอง MotionWienerFilterOptions กับวัตถุ RasterImage
rasterImage.filter(image.getBounds(), options);
// บันทึกภาพผลลัพธ์
image.save("Jac_motion_weiner.jpg");
Java Median และ Wiener Image Filtering API - รับใบอนุญาตฟรี
คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี และใช้ตัวกรองค่ามัธยฐานและตัวกรอง Wiener กับรูปภาพโดยไม่มีข้อจำกัดในการประเมิน
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีใช้ตัวกรองค่ามัธยฐานและตัวกรอง Wiener กับรูปภาพใน Java นอกจากนี้ เราได้กล่าวถึงวิธีลดจุดรบกวนของวัตถุที่เคลื่อนไหวในภาพ คุณสามารถใช้คุณสมบัติเหล่านี้ในแอปพลิเคชัน Java เพื่อรวมความสามารถในการแก้ไขรูปภาพได้อย่างง่ายดาย
อ่านเพิ่มเติม
คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ API การประมวลผลภาพ Java โดยใช้ เอกสารประกอบ นอกจากนี้ คุณสามารถแบ่งปันคำถามของคุณกับเราผ่านทาง ฟอรัม