แปลงภาพเป็นโทนสีเทา C#

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

C# API เพื่อแปลงรูปภาพเป็นโทนสีเทา - ดาวน์โหลดฟรี

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

PM> Install-Package Aspose.Imaging

แปลงรูปภาพเป็นโทนสีเทาใน C#

ต่อไปนี้เป็นขั้นตอนในการแปลงภาพสีเป็นโทนสีเทาใน C#

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

// โหลดรูปภาพในอินสแตนซ์ของคลาส Image
using (Image image = Image.Load("aspose.jpg"))
{
    // ส่งรูปภาพไปที่ RasterCachedImage และตรวจสอบว่ารูปภาพถูกแคชไว้หรือไม่
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // ภาพแคชหากยังไม่ได้แคช
        rasterCachedImage.CacheData();
    }

    // แปลงภาพเป็นการแสดงระดับสีเทา
    rasterCachedImage.Grayscale();
    
    // บันทึกภาพ
    rasterCachedImage.Save("grayscaled.jpg");
}

รูปภาพอินพุต

ต่อไปนี้คือรูปภาพตัวอย่างที่ใช้ในบทความนี้

ภาพเป็นสีเทา C#

แปลงเป็นโทนสีเทา

ต่อไปนี้เป็นภาพหลังจากแปลงเป็นโทนสีเทา

ภาพระดับสีเทา

ภาพโทนสีเทาใน C# - ขาวดำพร้อมไบนาไรเซชัน

ในไบนาไรเซชัน แต่ละพิกเซลในรูปภาพสามารถมีค่าที่เป็นไปได้เพียงสองค่าเท่านั้น 0 หรือ 1 ในที่นี้ 0 หมายถึงไม่มีและ 1 หมายถึงมีสีอยู่ Aspose.Imaging รองรับวิธีไบนาไรเซชันสองวิธี ได้แก่ ไบนาไรเซชันแบบคงที่และไบนาไรเซชันด้วยเกณฑ์ Otsu

ไบนาไรเซชันด้วยเกณฑ์คงที่ใน C#

ต่อไปนี้เป็นขั้นตอนในการดำเนินการไบนาไรเซชันบนรูปภาพโดยใช้เกณฑ์คงที่

รหัส C# ต่อไปนี้ใช้ไบนาไรเซชันกับรูปภาพและแปลงเป็นขาวดำ

// โหลดรูปภาพในอินสแตนซ์ของคลาส Image
using (Image image = Image.Load("aspose.jpg"))
{
    // ส่งรูปภาพไปที่ RasterCachedImage และตรวจสอบว่ารูปภาพถูกแคชไว้หรือไม่
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // ภาพแคชหากยังไม่ได้แคช
        rasterCachedImage.CacheData();
    }

    // แปลงภาพเป็นตัวแทนไบนารี
    rasterCachedImage.BinarizeFixed(100);
    
    // บันทึกภาพ
    rasterCachedImage.Save("black and white.jpg");
}

C # Binarization พร้อม Otsu Threshold

ต่อไปนี้เป็นขั้นตอนในการแปลงรูปภาพเป็นขาวดำด้วย Otsu threshold

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแปลงรูปภาพเป็นขาวดำด้วย Otsu threshold โดยใช้ C#

// โหลดรูปภาพในอินสแตนซ์ของคลาส Image
using (Image image = Image.Load("aspose.jpg"))
{
    // ส่งรูปภาพไปที่ RasterCachedImage และตรวจสอบว่ารูปภาพถูกแคชไว้หรือไม่
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // ภาพแคชหากยังไม่ได้แคช
        rasterCachedImage.CacheData();
    }

    // แปลงภาพเป็นตัวแทนไบนารี
    rasterCachedImage.BinarizeOtsu();
    
    // บันทึกภาพ
    rasterCachedImage.Save("black and white.jpg");
}

C# Image to Greyscale Converter - รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อใช้ API โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

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

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