ภาพ RGB เป็นจาวาสีเทา

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

Java Color Image to Greyscale Converter - ดาวน์โหลดฟรี

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

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging-java</artifactId>
    <version>21.7</version>
    <classifier>jdk16</classifier>
</dependency>

แปลงภาพ RGB เป็นระดับสีเทาใน Java

ต่อไปนี้เป็นขั้นตอนในการแปลงอิมเมจ RGB เป็นโทนสีเทาใน Java

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

// โหลดรูปภาพในอินสแตนซ์ของรูปภาพ
try (Image image = Image.load("aspose-logo.jpg"))
{
    // ส่งภาพไปที่ RasterCachedImage
    RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
    
    // ตรวจสอบว่ารูปภาพถูกแคชหรือไม่
    if (!rasterCachedImage.isCached()) {
        // ภาพแคชหากยังไม่ได้แคช
        rasterCachedImage.cacheData();
    }
    // แปลงภาพเป็นการแสดงระดับสีเทา
    rasterCachedImage.grayscale();
    
    // บันทึกภาพผลลัพธ์
    rasterCachedImage.save("Grayscaling_out.jpg");
}

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

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

ภาพเป็นสีเทา Java

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

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

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

Java บันทึกภาพเป็นขาวดำด้วย Binarization

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

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

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

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

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

    // ภาพ Binarize ด้วยเกณฑ์คงที่ที่กำหนดไว้ล่วงหน้าและบันทึกภาพผลลัพธ์                
    rasterCachedImage.binarizeFixed((byte) 100);
    rasterCachedImage.save("BinarizationWithFixedThreshold_out.jpg");
}

Binarization กับ Otsu Threshold

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

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

// โหลดรูปภาพในอินสแตนซ์ของรูปภาพ
try (Image image = Image.load("aspose-logo.jpg"))
{
    // ส่งรูปภาพไปที่ RasterCachedImage และตรวจสอบว่ารูปภาพถูกแคชไว้หรือไม่
    RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
    if (!rasterCachedImage.isCached())
    {
        // ภาพแคชหากยังไม่ได้แคช
        rasterCachedImage.cacheData();
    }
    // ภาพ Binarize ด้วย Otsu Thresholding
    rasterCachedImage.binarizeOtsu();
  
    // บันทึกภาพผลลัพธ์
    rasterCachedImage.save("BinarizationWithOtsuThreshold_out.jpg");
}

ภาพสีเป็นสีเทา ตัวแปลง Java - รับใบอนุญาตฟรี

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

บทสรุป

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

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