در موارد مختلف ممکن است نیاز به تبدیل تصاویر رنگی به مقیاس خاکستری یا سیاه و سفید داشته باشید، مانند پردازش تصویر و غیره. بنابراین، در این مقاله نحوه تبدیل تصویر به مقیاس خاکستری در سی شارپ را خواهید آموخت. علاوه بر این، این مقاله به طور صریح رنگ خاکستری و دوتایی [تصاویر] را پوشش خواهد داد.
- C# API برای تبدیل تصویر به Grayscale
- تبدیل تصویر به Grayscale در سی شارپ
- تبدیل تصویر به سیاه و سفید با Binarization
- مجوز API رایگان دریافت کنید
C# API برای تبدیل تصویر به Grayscale - دانلود رایگان
برای تبدیل تصاویر رنگی RGB به مقیاس خاکستری، از Aspose.Imaging for .NET استفاده می کنیم. این یک API پردازش تصویر قدرتمند است که به شما امکان می دهد فرمت های تصویر محبوب را به طور یکپارچه دستکاری کنید. میتوانید API را دانلود یا با استفاده از NuGet نصب کنید.
PM> Install-Package Aspose.Imaging
تبدیل تصویر به Grayscale در سی شارپ
در زیر مراحل تبدیل یک تصویر رنگی به مقیاس خاکستری در سی شارپ آمده است.
- ابتدا تصویر را با استفاده از کلاس Image بارگذاری کنید.
- تصویر را در یک شی RasterCachedImage قرار دهید.
- تصویر را با استفاده از روش RasterCachedImage.CacheData() کش کنید.
- با استفاده از روش RasterCachedImage.Grayscale() تصویر را به مقیاس خاکستری تبدیل کنید.
- در نهایت با استفاده از روش RasterCachedImage.Save(String) تصویر را ذخیره کنید.
نمونه کد زیر نحوه تبدیل یک تصویر به مقیاس خاکستری با استفاده از C# را نشان می دهد.
// یک تصویر را در یک نمونه از کلاس Image بارگیری کنید
using (Image image = Image.Load("aspose.jpg"))
{
// تصویر را به RasterCachedImage ارسال کنید و بررسی کنید که آیا تصویر ذخیره شده است یا خیر
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// اگر قبلاً ذخیره نشده است، تصویر را در حافظه پنهان ذخیره کنید
rasterCachedImage.CacheData();
}
// تصویر را به نمایش خاکستری آن تبدیل کنید
rasterCachedImage.Grayscale();
// تصویر را ذخیره کنید
rasterCachedImage.Save("grayscaled.jpg");
}
تصویر ورودی
تصویر زیر نمونه ای است که در این مقاله استفاده شده است.
به Grayscale تبدیل شد
تصویر زیر پس از تبدیل به مقیاس خاکستری است.
تصویر در مقیاس خاکستری در سی شارپ - سیاه و سفید با دوتایی
در باینری سازی، هر پیکسل در یک تصویر می تواند تنها دو مقدار ممکن داشته باشد. 0 یا 1. در اینجا 0 نشان دهنده عدم وجود و 1 نشان دهنده وجود رنگ است. Aspose.Imaging از دو روش باینریزهسازی پشتیبانی میکند، یعنی دوتاییسازی با ثابت و باینریسازی با آستانه Otsu.
دودویی سازی با آستانه ثابت در سی شارپ
مراحل زیر برای انجام باینریزه کردن تصویر با استفاده از آستانه ثابت آمده است.
- ابتدا تصویر را با استفاده از کلاس Image بارگذاری کنید.
- تصویر را در یک شیء RasterCachedImage قرار دهید.
- تصویر را با استفاده از روش RasterCachedImage.CacheData() کش کنید.
- با استفاده از روش RasterCachedImage.BinarizeFixed() تصویر را به سیاه و سفید تبدیل کنید.
- در نهایت، تصویر را با استفاده از روش RasterCachedImage.Save(String) ذخیره کنید.
کد سی شارپ زیر باینریزه کردن تصویر را اعمال می کند و آن را به سیاه و سفید تبدیل می کند.
// یک تصویر را در یک نمونه از کلاس Image بارگیری کنید
using (Image image = Image.Load("aspose.jpg"))
{
// تصویر را به RasterCachedImage ارسال کنید و بررسی کنید که آیا تصویر ذخیره شده است یا خیر
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// اگر قبلاً ذخیره نشده است، تصویر را در حافظه پنهان ذخیره کنید
rasterCachedImage.CacheData();
}
// تبدیل تصویر به نمایش باینری آن
rasterCachedImage.BinarizeFixed(100);
// تصویر را ذخیره کنید
rasterCachedImage.Save("black and white.jpg");
}
C# باینریزه با آستانه Otsu
در زیر مرحله تبدیل یک تصویر به سیاه و سفید با آستانه Otsu آمده است.
- ابتدا تصویر را با استفاده از کلاس Image بارگذاری کنید.
- تصویر را در یک شی RasterCachedImage قرار دهید.
- تصویر را با استفاده از روش RasterCachedImage.CacheData() کش کنید.
- با استفاده از روش RasterCachedImage.BinarizeOtsu تصویر را به سیاه و سفید تبدیل کنید.
- در نهایت، تصویر را با استفاده از روش RasterCachedImage.Save(String) ذخیره کنید.
نمونه کد زیر نحوه تبدیل یک تصویر به سیاه و سفید با آستانه Otsu را با استفاده از C# نشان می دهد.
// یک تصویر را در یک نمونه از کلاس Image بارگیری کنید
using (Image image = Image.Load("aspose.jpg"))
{
// تصویر را به RasterCachedImage ارسال کنید و بررسی کنید که آیا تصویر ذخیره شده است یا خیر
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// اگر قبلاً ذخیره نشده است، تصویر را در حافظه پنهان ذخیره کنید
rasterCachedImage.CacheData();
}
// تبدیل تصویر به نمایش باینری آن
rasterCachedImage.BinarizeOtsu();
// تصویر را ذخیره کنید
rasterCachedImage.Save("black and white.jpg");
}
تبدیل تصویر C# به Grayscale - یک مجوز رایگان دریافت کنید
برای استفاده از API بدون محدودیت ارزیابی، می توانید یک مجوز موقت رایگان دریافت کنید.
نتیجه
در این مقاله یاد گرفتید که چگونه با استفاده از سی شارپ یک تصویر را به مقیاس خاکستری و سیاه و سفید تبدیل کنید. علاوه بر این، نحوه اعمال باینریزه کردن تصاویر با آستانه ثابت یا Otsu را دیده اید. علاوه بر این، میتوانید با استفاده از مستندات درباره API پردازش تصویر C# بیشتر کاوش کنید. همچنین، می توانید سوالات خود را از طریق [تالار گفتمان22 با ما در میان بگذارید.