ویرایش تصویر در برنامه های مختلف برای دستکاری تصاویر برای پردازش بیشتر استفاده می شود. ما یک سری وبلاگ نوشته ایم، به عنوان مثال [برش 18، چرخش، تار کردن و غیره که برای پیاده سازی ویژگی های ویرایش تصویر در برنامه های خود مفید هستند. در این مقاله قصد داریم نحوه اعمال فیلترهای مدیان و وینر را که معمولا برای حذف نویز و صاف کردن تصاویر استفاده می شوند را به شما نشان دهیم. بنابراین بیایید ببینیم که چگونه فایلهای مدیان و وینر را به صورت برنامهنویسی در سی شارپ روی یک تصویر اعمال کنیم.
- C# API برای اعمال فیلترهای تصویر Median و Wiener
- اعمال فیلتر میانه روی تصویر در سی شارپ
- فیلتر Gauss Wiener را روی یک تصویر اعمال کنید
- Motion Wiener فیلتر کردن یک تصویر
C# API برای اعمال فیلترهای تصویر Median و Wiener - دانلود رایگان
Aspose.Imaging for .NET یک API شگفت انگیز برای پیاده سازی ویژگی های ویرایش تصویر در برنامه های NET است. ما از این API برای اعمال فیلترهای میانی و وینر روی تصاویر استفاده خواهیم کرد. می توانید API را دانلود یا از NuGet نصب کنید.
PM> Install-Package Aspose.Imaging
اعمال فیلتر میانه روی تصویر در سی شارپ
فیلتر میانه یک تکنیک فیلتر دیجیتال غیرخطی است که برای کاهش نویز از تصاویر استفاده می شود. مراحل زیر برای اعمال فیلتر میانه روی یک تصویر در سی شارپ آمده است.
- ابتدا تصویر را با استفاده از روش Image.Load() بارگذاری کنید.
- سپس، تصویر را به نوع RasterImage ارسال کنید.
- یک نمونه از کلاس MedianFilterOptions ایجاد کنید و آن را با اندازه مستطیل مقداردهی اولیه کنید.
- فیلتر میانه را با استفاده از روش RasterImage.Filter(Rectangle, MedianFilterOptions) اعمال کنید.
- در نهایت، تصویر حاصل را با استفاده از روش RasterImage.Save() ذخیره کنید.
نمونه کد زیر نحوه اعمال فیلتر میانه روی یک تصویر در سی شارپ را نشان می دهد.
// تصویر نویزدار را بارگیری کنید
using (Image image = Image.Load("jack.jpg"))
{
// تصویر را در RasterImage قرار دهید
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// یک نمونه از کلاس MedianFilterOptions ایجاد کنید و اندازه را تنظیم کنید
MedianFilterOptions options = new MedianFilterOptions(4);
// اعمال فیلتر و ذخیره تصویر
rasterImage.Filter(image.Bounds, options);
image.Save("jack_median.jpg");
}
در زیر تصویر قبل و بعد از اعمال فیلتر میانه آمده است.
اعمال فیلتر Gauss Wiener به یک تصویر در سی شارپ
یکی دیگر از روش های رایج برای به حداقل رساندن نویز افزایشی و تاری در تصاویر، گاوس وینر است. در زیر مراحل اعمال فیلتر گاوس وینر بر روی یک تصویر در سی شارپ آمده است.
- ابتدا تصویر را با استفاده از روش Image.Load() بارگذاری کنید.
- سپس، تصویر را به نوع RasterImage ارسال کنید.
- یک نمونه از کلاس GaussWienerFilterOptions ایجاد کنید و آن را با اندازه شعاع و مقدار صاف مقداردهی اولیه کنید.
- (اختیاری) برای دریافت یک تصویر خاکستری، ویژگی GaussWienerFilterOptions.Grayscale را روی true تنظیم کنید.
- فیلتر گاوس وینر را با استفاده از روش RasterImage.Filter(Rectangle, GaussWienerFilterOptions) اعمال کنید.
- در نهایت، تصویر حاصل را با استفاده از روش RasterImage.Save() ذخیره کنید.
نمونه کد زیر نحوه اعمال فیلتر گاوس وینر را بر روی یک تصویر در سی شارپ نشان می دهد.
// تصویر نویزدار را بارگیری کنید
using (Image image = Image.Load("jack.jpg"))
{
// تصویر را در RasterImage قرار دهید
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// یک نمونه از کلاس GaussWienerFilterOptions ایجاد کنید و اندازه شعاع و مقدار صاف را تنظیم کنید
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.Grayscale = true;
// فیلتر MedianFilterOptions را روی شی RasterImage اعمال کنید و تصویر حاصل را ذخیره کنید
rasterImage.Filter(image.Bounds, options);
image.Save("jack_guass.jpg");
}
در زیر تصویر قبل و بعد از اعمال فیلتر گاوس وینر با گزینه greyscale می باشد.
تصویر زیر قبل و بعد از اعمال فیلتر گاوس وینر بدون خاکستری است.
اعمال فیلتر Motion Wiener روی تصویر در سی شارپ
فیلتر موشن وینر برای حذف تاری تصویری که به دلیل اجسام متحرک تولید می شود استفاده می شود. مراحل زیر برای اعمال فیلتر motion wiener روی یک تصویر در سی شارپ آمده است.
- ابتدا تصویر را با استفاده از روش Image.Load() بارگذاری کنید.
- سپس، تصویر را به نوع RasterImage ارسال کنید.
- یک نمونه از کلاس MotionWienerFilterOptions ایجاد کنید و آن را با طول، مقدار صاف و زاویه مقداردهی اولیه کنید.
- فیلتر حرکت وینر را با استفاده از روش RasterImage.Filter(Rectangle, MotionWienerFilterOptions) اعمال کنید.
- در نهایت، تصویر حاصل را با استفاده از روش RasterImage.Save() ذخیره کنید.
نمونه کد زیر نحوه اعمال فیلتر موشن وینر را بر روی یک تصویر در سی شارپ نشان می دهد.
// تصویر نویزدار را بارگیری کنید
using (Image image = Image.Load("jack.jpg"))
{
// تصویر را در RasterImage قرار دهید
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// یک نمونه از کلاس MotionWienerFilterOptions ایجاد کنید و طول، مقدار صاف و زاویه را تنظیم کنید
MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
options.Grayscale = true;
// فیلتر MedianFilterOptions را روی شی RasterImage اعمال کنید و تصویر حاصل را ذخیره کنید
rasterImage.Filter(image.Bounds, options);
image.Save("jack_MotionWiener.jpg");
}
C# Median and Wiener Image Filtering API - مجوز رایگان دریافت کنید
میتوانید یک مجوز موقت رایگان دریافت کنید و فیلترهای میانی و وینر را بدون محدودیت ارزیابی روی تصاویر اعمال کنید.
نتیجه
در این مقاله با نحوه اعمال فیلترهای مدیان و وینر بر روی تصاویر در سی شارپ آشنا شدید. علاوه بر این، نحوه کاهش نویز اجسام متحرک در یک تصویر را توضیح داده ایم. شما به راحتی می توانید از این ویژگی ها در برنامه سی شارپ خود برای یکپارچه سازی قابلیت های ویرایش تصویر استفاده کنید.
ادامه مطلب
میتوانید با استفاده از Documentation درباره API پردازش تصویر داتنت بیشتر کاوش کنید. همچنین، می توانید سوالات خود را از طریق [تالار گفتمان3 با ما در میان بگذارید.