در موارد مختلف ممکن است نیاز به تبدیل تصاویر RGB به مقیاس خاکستری یا سیاه و سفید داشته باشید، به عنوان مثال در پردازش تصویر و غیره. بر همین اساس، در این مقاله نحوه تبدیل تصویر RGB به مقیاس خاکستری با استفاده از جاوا را یاد خواهید گرفت. . علاوه بر این، این مقاله به طور واضح رنگ خاکستری و باینریزه کردن تصاویر را پوشش خواهد داد.
- Java API برای تبدیل تصویر رنگی به Grayscale
- تبدیل تصویر به Grayscale در جاوا
- تبدیل تصویر به سیاه و سفید با Binarization
تبدیل تصویر رنگی جاوا به مقیاس خاکستری - دانلود رایگان
برای تبدیل تصاویر 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 بارگذاری کنید.
- سپس، تصویر را در یک شی RasterCachedImage قرار دهید.
- تصویر را با استفاده از روش RasterCachedImage.cacheData() کش کنید.
- با استفاده از روش RasterCachedImage.grayscale() تصویر را به مقیاس خاکستری تبدیل کنید.
- در نهایت، تصویر را با استفاده از روش RasterCachedImage.save(String) ذخیره کنید.
نمونه کد زیر نحوه تبدیل یک تصویر به مقیاس خاکستری در جاوا را نشان می دهد.
// یک تصویر را در یک نمونه از 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 بارگذاری کنید.
- سپس، تصویر را در یک شی RasterCachedImage قرار دهید.
- تصویر را با استفاده از روش RasterCachedImage.cacheData() کش کنید.
- با استفاده از روش RasterCachedImage.binarizeFixed() تصویر را به سیاه و سفید تبدیل کنید.
- در نهایت، تصویر را با استفاده از روش RasterCachedImage.save(String) ذخیره کنید.
کد جاوا زیر باینریزه کردن تصویر را اعمال می کند و آن را به سیاه و سفید تبدیل می کند.
// یک تصویر را در یک نمونه از 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 ما با ما در میان بگذارید.