ใช้ตัวกรอง Median และ Wiener กับรูปภาพใน C #

การแก้ไขรูปภาพใช้ในแอปพลิเคชันต่างๆ เพื่อจัดการรูปภาพสำหรับการประมวลผลเพิ่มเติม เราได้เขียนบล็อกเป็นชุด เช่น การครอบตัด, หมุน, การเบลอ เป็นต้น ซึ่งมีประโยชน์สำหรับคุณในการปรับใช้คุณสมบัติการแก้ไขภาพในแอปพลิเคชันของคุณ ในบทความนี้ เราจะแสดงวิธีการใช้ตัวกรองค่ามัธยฐานและตัวกรองแบบ Wiener ซึ่งมักใช้เพื่อลดจุดรบกวนและทำให้ภาพเรียบขึ้น มาดูวิธีการนำไฟล์ค่ามัธยฐานและ Wiener ไปใช้กับรูปภาพโดยทางโปรแกรมใน C#

C# API เพื่อใช้ตัวกรองรูปภาพ Median และ Wiener - ดาวน์โหลดฟรี

Aspose.Imaging for .NET เป็น API ที่ยอดเยี่ยมสำหรับใช้คุณสมบัติการแก้ไขรูปภาพในแอปพลิเคชัน .NET เราจะใช้ API นี้สำหรับการใช้ตัวกรองค่ามัธยฐานและค่ากลางบนรูปภาพ คุณสามารถ ดาวน์โหลด API หรือติดตั้งจาก NuGet

PM> Install-Package Aspose.Imaging

ใช้ Median Filter กับรูปภาพใน C#

Median filter เป็นเทคนิคการกรองแบบดิจิตอลแบบไม่เชิงเส้น ซึ่งใช้เพื่อลดสัญญาณรบกวนจากภาพ ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรองค่ามัธยฐานกับรูปภาพใน C#

  • ขั้นแรก โหลดรูปภาพโดยใช้เมธอด Image.Load()
  • จากนั้น ส่งภาพไปที่ประเภท RasterImage
  • สร้างอินสแตนซ์ของคลาส MedianFilterOptions และเริ่มต้นด้วยขนาดของสี่เหลี่ยมผืนผ้า
  • ใช้ตัวกรองค่ามัธยฐานโดยใช้เมธอด RasterImage.Filter(Rectangle, MedianFilterOptions)
  • สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ตัวกรองค่ามัธยฐานกับรูปภาพใน C#

// โหลดภาพที่มีสัญญาณรบกวน 
using (Image image = Image.Load("jack.jpg"))
{
    // แคสต์ภาพเป็น RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // สร้างอินสแตนซ์ของคลาส MedianFilterOptions และกำหนดขนาด
    MedianFilterOptions options = new MedianFilterOptions(4);
    
    // ใช้ตัวกรองและบันทึกภาพ
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_median.jpg");
}

ด้านล่างคือภาพก่อนและหลังใช้ตัวกรองค่ามัธยฐาน

ใช้ Median Filter กับ Image C#

ใช้ตัวกรอง Gauss Wiener กับรูปภาพใน C

อีกวิธีหนึ่งที่ใช้กันทั่วไปเพื่อลดสัญญาณรบกวนเพิ่มเติมและการเบลอของภาพคือ gauss wiener ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรอง gauss wiener กับรูปภาพใน C#

  • ขั้นแรก โหลดรูปภาพโดยใช้เมธอด Image.Load()
  • จากนั้น ส่งภาพไปที่ประเภท RasterImage
  • สร้างอินสแตนซ์ของคลาส GaussWienerFilterOptions และเริ่มต้นด้วยขนาดรัศมีและค่าที่ราบรื่น
  • (ไม่บังคับ) หากต้องการรับภาพโทนสีเทา ให้ตั้งค่าคุณสมบัติ GaussWienerFilterOptions.Grayscale เป็นจริง
  • ใช้ตัวกรอง gauss wiener โดยใช้วิธี RasterImage.Filter(Rectangle, GaussWienerFilterOptions)
  • สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ตัวกรอง Gauss Wiener กับรูปภาพใน C#

// โหลดภาพที่มีสัญญาณรบกวน 
using (Image image = Image.Load("jack.jpg"))
{
    // แคสต์ภาพเป็น RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // สร้างอินสแตนซ์ของคลาส GaussWienerFilterOptions และตั้งค่าขนาดรัศมีและค่าความเรียบ
    GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
    options.Grayscale = true;

    // ใช้ตัวกรอง MedianFilterOptions กับวัตถุ RasterImage และบันทึกภาพผลลัพธ์
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_guass.jpg");
}

ด้านล่างคือภาพก่อนและหลังใช้ตัวกรองเกาส์วีเนอร์ด้วยตัวเลือกระดับสีเทา

ใช้ Gauss Weiner Filter กับ Image Greyscaling

ต่อไปนี้คือภาพก่อนและหลังใช้ตัวกรอง Gauss Wiener โดยไม่มีการปรับโทนสีเทา

ใช้ตัวกรองสี Gauss Weiner กับรูปภาพ

ใช้ตัวกรอง Motion Wiener กับรูปภาพใน C

ฟิลเตอร์ Motion Wiener ใช้เพื่อลบภาพเบลอที่เกิดจากวัตถุที่กำลังเคลื่อนที่ ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรอง Motion Wiener กับรูปภาพใน C#

  • ขั้นแรก โหลดรูปภาพโดยใช้เมธอด Image.Load()
  • จากนั้น ส่งภาพไปที่ประเภท RasterImage
  • สร้างอินสแตนซ์ของคลาส MotionWienerFilterOptions และเริ่มต้นด้วยความยาว ค่าที่ราบรื่น และมุม
  • ใช้ฟิลเตอร์ Motion Wiener โดยใช้วิธี RasterImage.Filter(Rectangle, MotionWienerFilterOptions)
  • สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ตัวกรองสัญญาณเคลื่อนไหวกับรูปภาพใน C#

// โหลดภาพที่มีสัญญาณรบกวน 
using (Image image = Image.Load("jack.jpg"))
{
    // แคสต์ภาพเป็น RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // สร้างอินสแตนซ์ของคลาส MotionWienerFilterOptions และตั้งค่าความยาว ค่าที่ราบรื่น และมุม
    MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
    options.Grayscale = true;

    // ใช้ตัวกรอง MedianFilterOptions กับวัตถุ RasterImage และบันทึกภาพผลลัพธ์
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_MotionWiener.jpg");
}
ใช้ตัวกรอง Motion Weiner กับรูปภาพใน C #

C# Median และ Wiener Image Filtering API - รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี และใช้ตัวกรองค่ามัธยฐานและตัวกรอง Wiener กับรูปภาพโดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีใช้ตัวกรองค่ามัธยฐานและตัวกรอง Wiener กับรูปภาพใน C# นอกจากนี้ เราได้กล่าวถึงวิธีลดจุดรบกวนของวัตถุที่เคลื่อนไหวในภาพ คุณสามารถใช้คุณสมบัติเหล่านี้ในแอปพลิเคชัน C# เพื่อรวมความสามารถในการแก้ไขรูปภาพได้อย่างง่ายดาย

อ่านเพิ่มเติม

คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ API การประมวลผลภาพ .NET โดยใช้ เอกสารประกอบ นอกจากนี้ คุณสามารถแบ่งปันคำถามของคุณกับเราผ่านทาง ฟอรัม

ดูสิ่งนี้ด้วย