התמונות בימינו מכילות כמות עצומה של פיקסלים ושפע של צבעים. לעיתים העין מתעייפת, ומתחשק לחזור אחורה בזמן ולהסתכל על תמונות פשוטות בשחור-לבן (מונוכרום) או בגוון חום-אדמדם ("ספיה"), כמו אלה שצולמו בתחילת המאה העשרים. לפעמים מתחשק לנו גם להפוך תמונות סלפי שלנו לתמונות כאלו, כדי ליצור מהן משהו מיוחד. התוכנות במצלמות ובמחשבים מאפשרות זאת. כיצד? בעזרת מתמטיקה פשוטה, כמובן.
העצמים שסביבנו פולטים או מחזירים גלים אלקטרומגנטיים באורכי גל שונים, שחלקם מתפרשים במוחנו כצבעים. את הצבעים האלה אפשר לייצג במצלמות ובמחשבים כשילוב של שלושת צבעי היסוד – אדום (R), ירוק (G) וכחול (B). כאשר אנו מצלמים תמונה, האור שעובר דרך עדשת המצלמה נקלט במערך צפוף של חיישנים (CCD), הממירים את האור לייצוג דיגיטלי [1]. כל חיישן במערך קובע את הצבע של נקודה (פיקסל) בתמונה. הייצוג הדיגיטלי של האור מורכב משלושה מספרים, המייצגים את עוצמתו של כל אחד משלושת צבעי היסוד בפיקסל המסוים. יש דרכים שונות לייצג את הצבעים בזיכרון, ולצורך ההסברים והדוגמאות להלן נתייחס לייצוג באמצעות ערכים שבין 0 ל-1. לדוגמה, אם צילמנו חפץ אדום, הערך של R יהיה 1, וערכי G ו-B יהיו שווים ל-0. כאשר ערכו של B קרוב ל-0 וערכי R ו-G קרובים זה לזה, נקבל גוונים שונים של צהוב.
אם נצלם את הקיר בביתנו בחושך, שלושת הערכים יהיו שווים ל-0. זהו הייצוג הדיגיטלי של הצבע השחור (למעשה – חוסר צבע). אם נצלם קיר לבן באור מלא, ערכי G ,R ו-B יהיו שווים ל-1: זהו הייצוג של הצבע הלבן, שהוא שילוב מאוזן של צבעי היסוד.
מה בדבר הייצוג של פיקסלים בגווני אפור? גוון אפור נוצר מערבוב של שחור ולבן. בפיקסל כזה הערכים של G ,R ו-B שווים זה לזה, ונקרא להם Y – עוצמת ההארה. כאשר ערך Y קרוב לאפס, הפיקסל ייראה שחור; כאשר Y=0.5 הפיקסל ייראה אפור, וכאשר Y קרוב לאחד, הפיקסל ייראה לבן. זהו הייצוג של פיקסלים בתמונת שחור-לבן (מונוכרום), שבה שומרים עבור כל פיקסל רק את ערך Y.
כאשר אנו הופכים תמונה צבעונית לתמונה בשחור-לבן, אנו מפחיתים את מספר הערכים המתארים כל פיקסל. המטרה שלנו היא לדאוג שהפחתת המידע לא תגרום לאיבוד פרטים חשובים, בעיקר שינויי גוון במעבר בין עצמים שונים. איך נעשה זאת?
מסתבר שאין פתרון מתמטי יחיד, שכן התשובה ה"נכונה" תלויה בראייה של המתבונן: אנשים שונים רגישים במידה שונה לאיבוד פרטים בהמרה לתמונת מונוכרום. פתרון פשוט להמרה הוא הממוצע 3/( Y=(R+G+B, אולם נמצא ששיטה זו אינה טובה מספיק. מדוע?
בעין האנושית יש שלושה סוגי תאים שקולטים אור באורכי גל שונים: סגלגל, ירוק-בהיר וצהוב-ירקרק [2]. בשל החפיפה בין תחומי התדרים של שני הקולטנים האחרונים, העין רגישה במיוחד לגוונים של ירוק. ואכן, חוקרים תשאלו אנשים על תמונות שהראו להם, ומצאו שהעין שלנו מבחינה בשינויים קטנים של גווני ירוק כמעט פי שניים בהשוואה לשינויים בגווני אדום, וקרוב לפי ארבעה בהשוואה לשינויים בגווני הכחול. מחקרים אלה הביאו לקביעת נוסחת קסם פופולרית, שבה עוצמת הצבע הירוק היא הדומיננטית:
Y= 0.299*R + 0.587*G + 0.114*B
כשאנו ממירים תמונות לשחור-לבן באמצעות נוסחה זו, נוכל להבחין בין גוונים השונים של העלים בעציץ שלנו טוב יותר משנוכל להבחין בין גוונים שונים של בלונים אדומים, כשם שגם בתמונת המקור היינו מבחינים טוב יותר בהבדלים בין גווני ירוק.
קיימות נוסחאות המרה משופרות עוד יותר, המבוססות על המרה לא-לינארית של ערכי הפיקסלים ועל ייצוג הקרויGamma Compression . גם ייצוג זה מתייחס לתכונות של העין האנושית: העיניים שלנו רגישות להבדלים בין גוונים של צבעים כהים, יותר מאשר להבדלים בין גוונים בהירים [3]. בהתאם לכך, בשיטה זו ניתן משקל רב יותר למידע על הגוונים הכהים (ערכי הפיקסלים הקרובים לאפס). השימוש בייצוג זה להמרת הצבע מורכב וצורך משאבי חישוב רבים, ולכן רוב התוכנות משתמשות בנוסחה הפשוטה. גם אנחנו השתמשנו בנוסחה הפשוטה באפליקציה שפיתחנו – אתם מוזמנים לנסות ולהתרשם.
דרך נוספת לתת לתמונות נופך עתיק וייחודי היא לצבוע אותן בגוון חום-צהבהב, הדומה לצבע הספיה (Sepia) ששימש בתעשיית הדפוס עד 1920 [4]. תמונות כאלו נראות כמו דפים ישנים שהצהיבו ודהו אחרי שנים, ואולי כך ייראו גם תמונות הסלפי שלנו בחלוף הזמן...
כיצד להפוך את התמונה שלנו לתמונה בצבעי ספיה? גם כאן נוסחאות ההמרה נקבעות באמצעות ניסויים. ראשית צריך לדאוג שצבע לבן בתמונה המקורית יהפוך לגוון הצהבהב האופייני לתמונות הישנות. בנוסף, הנוסחה צריכה לתת ביטוי לצבע הירוק בתמונת המקור, יותר מאשר לאדום ולכחול, ולשמור ככל האפשר על מידת ההארה.
בחרנו להדגים באפליקציה נוסחה שפורסמה ברשת ותוכנות רבות משתמשות בה. נוסחה זו לוקחת את שלושת הערכים של הפיקסל המקורי ומחשבת מהם את ערכי הפיקסל החדש באמצעות משוואות לינאריות שמשקללות גם רוויית צבע (סטורציה).
תיארנו המרת צבעים בתמונה, שכרוכה בוויתור על חלק מהמידע שבה. בצד זאת, יש כיום שיטות לביצוע המהלך ההפוך: הוספת צבעים לתמונות שחור-לבן ישנות. שיטות אלה מיישמות למידה עמוקה כדי לזהות עצמים בתמונה ולהוסיף להם צבע מתאים – דשא ירוק, ים כחול וכדומה. לפעמים גם המהלך הפשוט יותר, זה שתיארנו כאן, יכול להיות מיוחד ומגניב. אתם מוזמנים לנסות.
קישור לאפליקציה
פיתוח אפליקציה: טניה ומירי אורנשטיין
תודה למירי אורנשטיין על עיבוד התמונה.
עריכה: סמדר רבן
מקורות והרחבות:
[1] סנסור CCD
[2] ראיית צבע
[3] חוק סטיבן
[4] ספיה בדפוס