تصویر RGB به جاوا در مقیاس خاکستری

در موارد مختلف ممکن است نیاز به تبدیل تصاویر RGB به مقیاس خاکستری یا سیاه و سفید داشته باشید، به عنوان مثال در پردازش تصویر و غیره. بر همین اساس، در این مقاله نحوه تبدیل تصویر RGB به مقیاس خاکستری با استفاده از جاوا را یاد خواهید گرفت. . علاوه بر این، این مقاله به طور واضح رنگ خاکستری و باینریزه کردن تصاویر را پوشش خواهد داد.

تبدیل تصویر رنگی جاوا به مقیاس خاکستری - دانلود رایگان

برای تبدیل تصاویر RGB به مقیاس خاکستری، از Aspose.Imaging for 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>

یک تصویر RGB را در جاوا به Grayscale تبدیل کنید

مراحل زیر برای تبدیل یک تصویر RGB به مقیاس خاکستری در جاوا آمده است.

نمونه کد زیر نحوه تبدیل یک تصویر به مقیاس خاکستری در جاوا را نشان می دهد.

// یک تصویر را در یک نمونه از 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");
}

تصویر ورودی

تصویر زیر نمونه ای است که در این مقاله استفاده شده است.

تصویر به مقیاس خاکستری جاوا

به Grayscale تبدیل شد

تصویر زیر پس از تبدیل به مقیاس خاکستری است.

تصویر خاکستری

جاوا ذخیره تصویر به صورت سیاه و سفید با باینریزه کردن

در باینری سازی، هر پیکسل در یک تصویر می تواند تنها دو مقدار ممکن داشته باشد. 0 یا 1. در اینجا 0 نشان دهنده عدم وجود و 1 نشان دهنده وجود رنگ است. Aspose.Imaging از دو روش باینریزه‌سازی پشتیبانی می‌کند، یعنی دوتایی‌سازی با ثابت و باینری‌سازی با آستانه Otsu.

باینریزه کردن با آستانه ثابت

مراحل زیر برای انجام باینریزه کردن تصویر با استفاده از آستانه ثابت آمده است.

کد جاوا زیر باینریزه کردن تصویر را اعمال می کند و آن را به سیاه و سفید تبدیل می کند.

// یک تصویر را در یک نمونه از 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.binarizeOtsu16 تصویر را به سیاه و سفید تبدیل کنید.
  • در نهایت، تصویر را با استفاده از روش RasterCachedImage.save(String) ذخیره کنید.

نمونه کد زیر نحوه تبدیل یک تصویر به سیاه و سفید با آستانه Otsu را با استفاده از جاوا نشان می دهد.

// یک تصویر را در یک نمونه از 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");
}

مبدل جاوا تصویر رنگی به مقیاس خاکستری - مجوز رایگان دریافت کنید

برای استفاده از API بدون محدودیت ارزیابی، می توانید یک مجوز موقت رایگان دریافت کنید.

نتیجه

در این مقاله یاد گرفتید که چگونه با استفاده از جاوا یک تصویر رنگی را به مقیاس خاکستری و سیاه و سفید تبدیل کنید. علاوه بر این، نحوه اعمال باینریزه کردن تصاویر با آستانه ثابت یا Otsu را دیده اید. علاوه بر این، می‌توانید با استفاده از مستندات درباره API پردازش تصویر جاوا بیشتر کاوش کنید. همچنین، می‌توانید سوالات خود را از طریق [فروم 20 ما با ما در میان بگذارید.

همچنین ببینید