在各種情況下,您可能需要將 RGB 圖像轉換為灰度或黑白圖像,例如在圖像處理等中。據此,在本文中,您將學習如何使用 Java 將 RGB 圖像轉換為灰度圖像.此外,本文將明確介紹圖像的灰度化和二值化。
Java 彩色圖像到灰度轉換器 - 免費下載
為了將 RGB 圖像轉換為灰度圖像,我們將使用 Aspose.Imaging for Java。它是一種 Java 圖像處理 API,可讓您無縫地處理流行的圖像格式。您可以 下載 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>
在 Java 中將 RGB 圖像轉換為灰度圖像
以下是在 Java 中將 RGB 圖像轉換為灰度圖像的步驟。
- 首先,使用 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 支持兩種二值化方法,即固定二值化和Otsu 閾值二值化。
固定閾值的二值化
以下是使用固定閾值對圖像執行二值化的步驟。
- 首先,使用 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");
}
使用 Otsu 閾值進行二值化
以下是使用 Otsu 閾值將圖像轉換為黑白的步驟。
- 首先,使用 Image 類加載圖像。
- 將圖像投射到 RasterCachedImage 對像中。
- 使用 RasterCachedImage.cacheData() 方法緩存圖像。
- 使用 RasterCachedImage.binarizeOtsu() 方法將圖像轉換為黑白圖像。
- 最後,使用 RasterCachedImage.save(String) 方法保存圖像。
以下代碼示例展示瞭如何使用 Java 使用 Otsu 閾值將圖像轉換為黑白圖像。
// 在 Image 的實例中加載圖像
try (Image image = Image.load("aspose-logo.jpg"))
{
// 將圖像投射到 RasterCachedImage 並檢查圖像是否被緩存
RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
if (!rasterCachedImage.isCached())
{
// 緩存圖像(如果尚未緩存)
rasterCachedImage.cacheData();
}
// 使用 Otsu 閾值對圖像進行二值化
rasterCachedImage.binarizeOtsu();
// 保存生成的圖像
rasterCachedImage.save("BinarizationWithOtsuThreshold_out.jpg");
}
彩色圖像到灰度 Java 轉換器 - 獲得免費許可證
您可以獲得免費的臨時許可證,以便不受評估限制地使用 API。
結論
在本文中,您學習瞭如何使用 Java 將彩色圖像轉換為灰度和黑白圖像。此外,您還了解瞭如何對具有固定閾值或 Otsu 閾值的圖像應用二值化。此外,您可以使用 文檔 探索有關 Java 圖像處理 API 的更多信息。此外,您可以通過我們的 論壇 與我們分享您的疑問。