اعمال فیلترهای مدیا و وینر روی تصاویر در سی شارپ

ویرایش تصویر در برنامه های مختلف برای دستکاری تصاویر برای پردازش بیشتر استفاده می شود. ما یک سری وبلاگ نوشته ایم، به عنوان مثال [برش 18، چرخش، تار کردن و غیره که برای پیاده سازی ویژگی های ویرایش تصویر در برنامه های خود مفید هستند. در این مقاله قصد داریم نحوه اعمال فیلترهای مدیان و وینر را که معمولا برای حذف نویز و صاف کردن تصاویر استفاده می شوند را به شما نشان دهیم. بنابراین بیایید ببینیم که چگونه فایل‌های مدیان و وینر را به صورت برنامه‌نویسی در سی شارپ روی یک تصویر اعمال کنیم.

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");
}

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

اعمال فیلتر میانه روی تصویر C#

اعمال فیلتر Gauss Wiener به یک تصویر در سی شارپ

یکی دیگر از روش های رایج برای به حداقل رساندن نویز افزایشی و تاری در تصاویر، گاوس وینر است. در زیر مراحل اعمال فیلتر گاوس وینر بر روی یک تصویر در سی شارپ آمده است.

نمونه کد زیر نحوه اعمال فیلتر گاوس وینر را بر روی یک تصویر در سی شارپ نشان می دهد.

// تصویر نویزدار را بارگیری کنید 
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 می باشد.

فیلتر Gauss Weiner را در مقیاس خاکستری تصویر اعمال کنید

تصویر زیر قبل و بعد از اعمال فیلتر گاوس وینر بدون خاکستری است.

فیلتر رنگی Gauss Weiner را روی تصویر اعمال کنید

اعمال فیلتر Motion Wiener روی تصویر در سی شارپ

فیلتر موشن وینر برای حذف تاری تصویری که به دلیل اجسام متحرک تولید می شود استفاده می شود. مراحل زیر برای اعمال فیلتر motion wiener روی یک تصویر در سی شارپ آمده است.

نمونه کد زیر نحوه اعمال فیلتر موشن وینر را بر روی یک تصویر در سی شارپ نشان می دهد.

// تصویر نویزدار را بارگیری کنید 
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 با ما در میان بگذارید.

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