Зображення RGB у відтінки сірого java

У різних випадках вам може знадобитися перетворити RGB-зображення на градації сірого або чорно-білі, наприклад, під час обробки зображень тощо. Відповідно, у цій статті ви дізнаєтесь, як перетворити зображення RGB на градації сірого за допомогою Java. Крім того, у статті буде чітко розглянуто градації сірого та бінаризацію зображень.

Перетворення кольорового зображення на градації сірого в Java – встановлення API

Щоб перетворити зображення 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.

  • Спочатку завантажте зображення за допомогою класу Image.
  • Потім переведіть зображення в об’єкт RasterCachedImage.
  • Кешуйте зображення за допомогою методу RasterCachedImage.cacheData().
  • Перетворіть зображення в градації сірого за допомогою методу RasterCachedImage.grayscale().
  • Нарешті, збережіть зображення за допомогою методу RasterCachedImage.save(String).

У наведеному нижче прикладі коду показано, як перетворити зображення на відтінки сірого в Java.

// Завантажте зображення в екземпляр Image
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 у відтінки сірого – бінаризація

У бінаризації кожен піксель зображення може мати лише два можливих значення; 0 або 1. Тут 0 означає відсутність, а 1 означає наявність кольору. Aspose.Imaging підтримує два методи бінаризації, тобто бінаризацію з фіксованим значенням і бінаризацію з порогом Оцу.

Бінаризація з фіксованим порогом

Нижче наведено кроки для виконання бінаризації зображення за допомогою фіксованого порогу.

Наведений нижче код Java застосовує бінаризацію до зображення та перетворює його на чорно-біле.

// Завантажте зображення в екземпляр Image
try (Image image = Image.load("aspose-logo.jpg"))
{
    // Переведіть зображення в RasterCachedImage і перевірте, чи зображення кешується                
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Кешувати зображення, якщо воно ще не збережено
        rasterCachedImage.CacheData();
    }

    // Бінаризуйте зображення з попередньо визначеним фіксованим порогом і збережіть отримане зображення                
    rasterCachedImage.binarizeFixed((byte) 100);
    rasterCachedImage.save("BinarizationWithFixedThreshold_out.jpg");
}

Бінаризація з порогом Оцу

Нижче наведено етапи перетворення зображення на чорно-біле з порогом Оцу.

У наведеному нижче прикладі коду показано, як перетворити зображення на чорно-біле з порогом Otsu за допомогою Java.

// Завантажте зображення в екземпляр Image
try (Image image = Image.load("aspose-logo.jpg"))
{
    // Переведіть зображення в RasterCachedImage і перевірте, чи зображення кешується
    RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
    if (!rasterCachedImage.isCached())
    {
        // Кешувати зображення, якщо воно ще не збережено
        rasterCachedImage.cacheData();
    }
    // Бінаризуйте зображення за допомогою Otsu Thresholding
    rasterCachedImage.binarizeOtsu();
  
    // Збережіть отримане зображення
    rasterCachedImage.save("BinarizationWithOtsuThreshold_out.jpg");
}

Перетворюйте зображення в градації сірого за допомогою безкоштовної ліцензії

Ви можете отримати безкоштовну тимчасову ліцензію і конвертувати зображення в градації сірого без обмежень оцінки.

Висновок

У цій статті ви дізналися, як за допомогою Java перетворити кольорове зображення на сіре та чорно-біле. Крім того, ви бачили, як застосувати бінаризацію до зображень із фіксованими порогами або порогами Оцу. Крім того, ви можете дізнатися більше про API обробки зображень Java за допомогою документації. Крім того, ви можете поділитися своїми запитами з нами через наш форум.

Дивись також