یکشنبه 1 مهر 1397 | Sunday 23 rd of September 2018 صفحه اصلی گروه الکترونیکی کامپیوتر
4 - 3 - 1 - نگاشت به رنگ‌های ادراکی

اولین گام الگوریتم‌، کاهش رنگ‌ها جهت افزایش کارایی در محاسبات و استحکام در برابر تغییر رنگ (حاصل از شرایط محیطی) است‌. فضای رنگ RGBدارای این نقطة ضعف است که نسبت به تغییرات رنگ حساس می‌باشد‌، به همین دلیل‌، تبدیل رنگ‌ها از این فضای رنگ به یک فضای رنگ مناسب‌تر‌، ضروری است‌. فضای رنگ Labبرای این منظور مناسب است‌. تبدیل از فضای رنگ RGBبه Labبه صورت زیر انجام می‌گیرد
مقادیر Xn‌، Ynو Znدر بیشتر موارد به صورت 0.95045 ‌، 1.0 و 1.088754 در نظر گرفته می‌شوند‌. در گام دوم‌، هر یک از رنگ‌ها به نزدیک‌ترین (با توجه به فاصلة اقلیدسی) رنگ ISCC - NBSنگاشت شده و با حذف پیشوندها به یکی از رنگ‌های {خاکستری‌، سیاه‌، سفید‌، قهوه‌ای‌، بنفش‌، نارنجی‌، ابی‌، زرد‌، سبز‌، قرمز}=Qcتغییر می‌یابد‌. در فضای رنگ ISCC – NBS‌، 267 رنگ وجود دارد که به صورت یک رنگ پایه با تعدادی پسوند توصیفی (پیشوند در زبان انگلیسی و پسوند در زبان فارسی)‌، نام‌گذاری شده‌اند‌. به عنوان مثال می‌توان به قرمز مایل به قهوه‌ای تیره اشاره کرد که با حذف پسوندها به قرمز کاهش می‌یابد‌. شکل 4 - 10 یک تصویر و تصویر حاصل از نگاشت رنگ‌های ان به رنگ‌های ادراکی را نشان می‌دهد‌.

 

 

شکل 4 - 10 - الف - تصویر ورودی‌. ب - تصویر الف که به رنگ‌های ادراکی نگاشت یافته است

نگاشت به رنگ‌های ادراکی به این ترتیب صورت می‌گیرد که رنگ هر پیکسل از تصویر ورودی‌، از فضای RGBبه فضای Labنگاشت می‌شود‌. در گام دوم‌، فاصلة رنگ نسبت به 267 رنگ موجود در لیست رنگ‌های ISCC - NBSمحاسبه می‌شود و رنگی که کمترین فاصله را با ان داشته باشد به عنوان رنگ ادراکی متناظر با ان در تصویر خروجی ذخیره می‌شود‌. الگوریتم 4 - 1 نحوه انجام این کار را نشان می‌دهد‌.

 

 

Color_Indexed_Image Perceptual_Color_Quantization(Bitmap_Image Input){

Color_Indexed_Image output;

Lab_Color   lab;

Color_Index   iscc_index;

for y=1 to Input‌. Height

 for x=1 to Input‌. Width

 {

  lab = RGBtoLab(input(x,y));

  iscc_index = Find_Nearset_ISCC_Color(lab);

  output(x,y) = Get_Perceptual_Color_Name(iscc_index);  

 }

return output;

}

 

 

الگوریتم 4 - 1 - نگاشت به رنگ‌های ادراکی

فراخوانی تابع تبدیل از RGBبه Labبرای هر پیکسل از تصویر ورودی‌، بسیار زمان‌بر است‌. برای جلوگیری از اجرای کند فرایند نگاشت به رنگ‌های ادراکی به جای فراخوانی تابع تبدیل‌، از یک جدول جستجو استفاده شد‌. در این جدول جستجو به ازای هر رنگ RGB‌، رنگ ادراکی متناظر با ان مشخص شده است‌. ایجاد چنین جدولی نیاز به ارایه‌ای با 16 میلیون (2563 یا 224) مدخل دارد‌. برای کاهش فضای مورد نیاز برای ذخیره این جدول و همچنین کاهش زمان ایجاد ان‌، کم ارزش‌ترین بیت هر یک از مولفه‌های رنگی نادیده گرفته می‌شود و به این ترتیب حجم حافظه و محاسبات به یک هشتم (1283 یا 221) کاهش می‌یابد‌. جدول مذکور یک بار محاسبه شده و روی حافظه جانبی ذخیره می‌شود و از ان پس در ابتدای اجرای برنامه در حافظه موقت بارگذاری می‌شود‌. استفاده از این روش‌، اجرای فرایند نگاشت به رنگ‌های ادراکی را ده‌ها برابر سرعت می‌بخشد‌.

  

Compatability by:
آخرین به روز رسانی سایت: سه شنبه, 22 اسفند 1391 - 00:26