ในหลายกรณี คุณอาจต้องแปลงรูปภาพสีเป็นโทนสีเทาหรือขาวดำ เช่น ในการประมวลผลภาพ เป็นต้น ดังนั้นในบทความนี้ คุณจะได้เรียนรู้วิธีแปลงรูปภาพเป็นโทนสีเทาใน C# นอกจากนี้ บทความนี้จะครอบคลุมถึงการไล่ระดับสีเทาและการทำให้เป็นไบนาไรเซชันของ ภาพ อย่างชัดเจน
- C# API สำหรับแปลงรูปภาพเป็นโทนสีเทา
- แปลงรูปภาพเป็นโทนสีเทาใน C#
- แปลงภาพเป็นขาวดำด้วยไบนาไรเซชัน
- รับใบอนุญาต API ฟรี
C# API เพื่อแปลงรูปภาพเป็นโทนสีเทา - ดาวน์โหลดฟรี
ในการแปลงภาพสี RGB เป็นโทนสีเทา เราจะใช้ Aspose.Imaging for .NET เป็น API การประมวลผลภาพอันทรงพลังที่ให้คุณจัดการรูปแบบภาพยอดนิยมได้อย่างราบรื่น คุณสามารถ ดาวน์โหลด API หรือติดตั้งโดยใช้ NuGet
PM> Install-Package Aspose.Imaging
แปลงรูปภาพเป็นโทนสีเทาใน C#
ต่อไปนี้เป็นขั้นตอนในการแปลงภาพสีเป็นโทนสีเทาใน C#
- ขั้นแรก โหลดภาพโดยใช้คลาส Image
- ส่งภาพไปยังวัตถุ RasterCachedImage
- แคชภาพโดยใช้เมธอด RasterCachedImage.CacheData()
- แปลงภาพเป็นโทนสีเทาโดยใช้เมธอด RasterCachedImage.Grayscale()
- สุดท้าย บันทึกภาพโดยใช้เมธอด RasterCachedImage.Save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแปลงรูปภาพเป็นโทนสีเทาโดยใช้ 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# - ขาวดำพร้อมไบนาไรเซชัน
ในไบนาไรเซชัน แต่ละพิกเซลในรูปภาพสามารถมีค่าที่เป็นไปได้เพียงสองค่าเท่านั้น 0 หรือ 1 ในที่นี้ 0 หมายถึงไม่มีและ 1 หมายถึงมีสีอยู่ Aspose.Imaging รองรับวิธีไบนาไรเซชันสองวิธี ได้แก่ ไบนาไรเซชันแบบคงที่และไบนาไรเซชันด้วยเกณฑ์ Otsu
ไบนาไรเซชันด้วยเกณฑ์คงที่ใน C#
ต่อไปนี้เป็นขั้นตอนในการดำเนินการไบนาไรเซชันบนรูปภาพโดยใช้เกณฑ์คงที่
- ขั้นแรก โหลดรูปภาพโดยใช้คลาส Image
- ส่งภาพไปยังวัตถุ RasterCachedImage
- แคชภาพโดยใช้เมธอด RasterCachedImage.CacheData()
- แปลงภาพเป็นขาวดำโดยใช้เมธอด RasterCachedImage.BinarizeFixed()
- สุดท้าย บันทึกภาพโดยใช้เมธอด RasterCachedImage.Save(String)
รหัส 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
- ขั้นแรก โหลดรูปภาพโดยใช้คลาส Image
- ส่งภาพไปยังวัตถุ RasterCachedImage
- แคชรูปภาพโดยใช้เมธอด RasterCachedImage.CacheData()
- แปลงภาพเป็นขาวดำโดยใช้เมธอด RasterCachedImage.BinarizeOtsu()
- สุดท้าย บันทึกภาพโดยใช้เมธอด RasterCachedImage.Save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแปลงรูปภาพเป็นขาวดำด้วย 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# โดยใช้ เอกสารประกอบ นอกจากนี้ คุณสามารถแบ่งปันคำถามของคุณกับเราผ่านทาง ฟอรัม