تبدیل سپیا رنگ در سی شارپ (Convert to Sepia)

در این قسمت تیم کدگیت را با آموزش تبدیل سپیا رنگ در سی شارپ (پردازش تصویر) همراهی کنید. آموزش‌های گذشته پردازش تصویر در مورد تبدیل‌های سبز، قرمز و آبی رنگ صحبت شد در ادامه همین مبحث در این جلسه آموزش تبدیل سپیا (sepia) رنگ را توضیح داده و در زبان برنامه‌نویسی سی شارپ آن را پیاده‌سازی خواهیم کرد. پیشنهاد می‌کنیم قبل از مطالعه این جلسه، آموزش‌های زیر را مطالعه کنید:

  1. خواندن تصاویر در سی شارپ
  2. ایجاد تصویر در سی شارپ
  3. حلقه For در سی شارپ
  4. If در سی شارپ

تبدیل سپیا رنگ در سی شارپ

رنگ سپیا (Sepia) به قهوه‌ای متمایل به قرمز گفته می شود. این رنگ در عکاسی کاربرد‌های فراوانی دارد. برای تبدیل تصاویر به این رنگ باید فرمول زیر را به کار ببریم:

newRed = 0.393*R + 0.769*G + 0.189*B

newGreen = 0.349*R + 0.686*G + 0.168*B

newBlue = 0.272*R + 0.534*G + 0.131*B

متغیر R و G و B به ترتیب رنگ قرمز و سبز و آبی درون پیکسل تصویر است با استفاده از فرمول فوق، الگوریتم تبدیل یک عکس به رنگ سپیا به صورت زیر می‌باشد:

  1. تمامی پیکسل تصویر رنگی را دریافت کرده.
  2. با استفاده از پیکسل‌های ورودی پیکسل‌های جدید را محاسبه می‌کنیم.(پیکسل‌های جدید را در متغیرهای newRed و newGreen و newBlue می‌ریزیم)
    1. نکته: در صورتی که پیکسل جدید عددی بالاتر از 255 بدست آمد آن را برابر با 255 قرار می‌دهیم.
  3. مقادیر RGB جدید را جایگزین مقادیر قبلی می‌کنیم.
  4. مراحل 2 تا 3 را برای تمامی پیکسل‌ها تکرار می‌کنیم.
تبدیل سپیا رنگ در سی شارپ

پیاده‌سازی تبدیل سپیا رنگ

برای پیاده‌سازی تبدیل سپیا ابتدا باید یک تصویر را خوانده و پیکس‌های آن را با فرمول داده شده تغییر دهیم. کد این تبدیل به صورت زیر می‌باشد:

بیشتر بخوانید:  فاکتوریل در سی شارپ (Factorial In C Sharp)

همانطور که در کد بالا می‌بینید پس از خواندن تصویر ، پیکسل‌های آن را با توجه به فرمول تغییر داده‌ایم. در آخر مقادیر بیشتر از 255 در RGB را عدد 255 قرار دادیم(در بالا این نکته آورده شد). خروجی برنامه به صورت زیر می‌باشد:

تبدیل سپیا رنگ در سی شارپ

سورد: www.codegate.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *