У різних випадках вам може знадобитися перетворити RGB-зображення на градації сірого або чорно-білі, наприклад, під час обробки зображень тощо. Відповідно, у цій статті ви дізнаєтесь, як перетворити зображення RGB на градації сірого за допомогою Java. Крім того, у статті буде чітко розглянуто градації сірого та бінаризацію зображень.
- Java API для перетворення кольорового зображення в градації сірого
- Перетворення зображення на градації сірого в 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 у відтінки сірого – бінаризація
У бінаризації кожен піксель зображення може мати лише два можливих значення; 0 або 1. Тут 0 означає відсутність, а 1 означає наявність кольору. Aspose.Imaging підтримує два методи бінаризації, тобто бінаризацію з фіксованим значенням і бінаризацію з порогом Оцу.
Бінаризація з фіксованим порогом
Нижче наведено кроки для виконання бінаризації зображення за допомогою фіксованого порогу.
- Спочатку завантажте зображення за допомогою класу Image.
- Потім переведіть зображення в об’єкт RasterCachedImage.
- Кешуйте зображення за допомогою методу RasterCachedImage.cacheData().
- Перетворіть зображення на чорно-біле за допомогою методу RasterCachedImage.binarizeFixed().
- Нарешті, збережіть зображення за допомогою методу RasterCachedImage.save(String).
Наведений нижче код 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");
}
Бінаризація з порогом Оцу
Нижче наведено етапи перетворення зображення на чорно-біле з порогом Оцу.
- Спочатку завантажте зображення за допомогою класу Image.
- Переведіть зображення в об’єкт RasterCachedImage.
- Кешуйте зображення за допомогою методу RasterCachedImage.cacheData().
- Перетворіть зображення на чорно-біле за допомогою методу RasterCachedImage.binarizeOtsu().
- Нарешті, збережіть зображення за допомогою методу RasterCachedImage.save(String).
У наведеному нижче прикладі коду показано, як перетворити зображення на чорно-біле з порогом 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 за допомогою документації. Крім того, ви можете поділитися своїми запитами з нами через наш форум.