זה לא זה! אנו לא מרוצים מהתמונה שצילמנו: אולי היא כהה מדי, אולי היא בהירה מדי ואולי אנו רוצים להוסיף לה אפקטים, למשל הסתכלות דרך זכוכית חצי שקופה או צלליות ותאורה. תוכנות לעריכת תמונות כמו פוטושופ או אינסטגרם מאפשרות לעשות שינויים מעין אלו, והקסם מאחורי שיפוץ תמונה הוא לעיתים מתמטיקה די פשוטה. הכיצד? נספר על טכניקה שימושית לעריכת תמונות הנקראת blending (ערבול) [1] ועל המתמטיקה מאחוריה ונדגים אותה באמצעות אפליקציה באתר [4]. זוהי מחווה קטנה שלנו לחובבי תמונות ולתלמידי מתמטיקה שמתחילים בקרוב את שנת הלימודים. בהצלחה!
צילמנו תמונה, שנקרא לה A, וגילינו שהיא זקוקה לשיפוץ במחשב. בטכניקת blending "מלבישים" עליה תמונה אחרת, שנקרא לה B, המיוצרת לצורך השיפורים של A. כידוע, כל תמונה במחשב מורכבת מרשת של תאים ריבועיים הנקראים פיקסלים, ולהם יש צבע אחיד המיוצג בצורה מספרית. על כל פיקסל a ב־A ופיקסל b באותו מיקום בתמונה B התוכנה תבצע חישוב מתמטי לפי בחירתנו, והוא ייצור ערך חדש של פיקסל התלוי ב־a וב־b, כלומר: (c=f(a,b. החישוב יכול להיות בסיסי מאוד, כמו כפל או חיבור, והתוצאה הכללית היא התמונה המשופצת, שנקרא לה C. למען הפשטות, נדון כאן בתמונות שחור־לבן (מונוכרום), שבהן צבע כל פיקסל הוא מספר בין 0 (שחור) ל־1 (לבן). נניח שגילינו שהתמונה A שצילמנו בהירה מדי. מה ניתן לעשות כדי להכהות אותה?
אם יש לנו תצלום שלה, נוכל לשים עליה ניילון שקוף חלקית בצבע אפרפר שנקרא לו B. מכיוון ש־B מסנן חלק מהאור, התמונה תראה כהה יותר. למשל, האזורים בתמונה שצבעם לבן (=1) ייעשו אפורים יותר (0.8 למשל).
אם התמונה שמורה במחשב, אפשר להכפיל את הצבע של כל פיקסל בערך הקטן מאחד כדי להכהות את התמונה. לשם כך נבנה באפליקציית העריכה תמונה B, שבה ערך כל פיקסל 0.8=b ונבצע פעולת הכפלה t=a*b. כל פיקסל לבן (1=) נעשה כהה יותר (0.8), ערך אפור נעשה קצת יותר כהה (למשל 0.5 יהפוך ל־0.5*0.8=0.4), ושחור (0=) יישאר כמובן שחור. השמיים בתמונה ייראו קודרים ואנו נהיה מרוצים.
אם נרצה לקבל אפקטים מעניינים יותר, נוכל לייצר את B ולכלול בה מגוון ערכי פיקסלים כך שבאזורים שונים בתמונה A יתבצעו שינויים שונים (ראו דוגמה באתר ושלל דוגמאות מרהיבות באפליקציה [4]).
מה יקרה אם B שווה ל־A? פעולת ההכפלה תהפוך ל־ t=a^2 וייווצרו אפקטים מעניינים: לבן (1=) יישאר לבן וכנ"ל שחור (0=), אבל צבעי הפיקסלים ביניהם ייעשו כהים יותר. למשל, אפור (0.5) ייעשה אפור כהה יותר (0.25).
קיימות פונקציות רבות אחרות שבאמצעותן אפשר להכהות תמונות, למשל על ידי חיסור (t=a-0.2) או חילוק(t=1-0.2/a), אולם יש לזכור שערכי הצבע הם בין 0 ל־1, ותוצאות שליליות מומרות לאפס (שחור). לכן, בשיטות אלו מאבדים לפעמים אינפורמציה (בדוגמאות שלנו: ערכים כהים הקטנים מ־0.2 ייעשו כולם שחורים).
ומה לעשות כדי להבהיר תמונה שיצאה כהה מדי? לשם כך יש באפליקציות פונקציות מתאימות, כמו הפונקציה הנקראת screen. הפעולה t = a*0.8+0.2 מבהירה תמונה כך ששחור (0=) ייעשה בהיר יותר (0.2). כאשר B = A, הפעלת screen תייצר פרבולה (t=a*(2-a. פעולה זו מבהירה ערכים באמצע, למשל 0.5 נעשה 0.75 מבלי לשנות את הצבעים בקצוות - שחור (0) ולבן (1) יישארו כמו שהם.
הפעלת פונקציה כמו ההכפלה היא פעולה בסיסית בתוכנות עריכה [2], אולם מי שיתבונן על עבודת עורכי תמונות בפוטושופ ילמד שזה עדיין לא הסוף, והתוצאה שנקרא לה T היא רק תוצאת ביניים. לעיתים השינוי שנעשה בתמונה T גדול מדי, וכדי למתן אותו העורכים "מערבבים" את T עם התמונה המקורית A באמצעות "פרמטר שקיפות של A", שנקרא לו x (שכתבנו עליו ב־[3]), כדי לקבל את התמונה C לפי הנוסחה:
c = a*(1-x) + t*x
מה שמבוצע הוא ממוצע משוקלל בין ערכי הצבע של הפיקסלים בתמונה המקורית A לבין ערכי הצבע בתוצאת החישוב T, כאשר x מגדיר את המשקלים: אם x קרוב לאחד, A היא כמעט שקופה ונראה רק את T; כאשר x קרוב לאפס, האפקט של T יהיה קטן. שינוי השקיפות נעשה על ידי הזזת עכבר, וגם אתם מוזמנים להשתעשע.
ראינו כיצד מבהירים או מכהים תמונה, אולם מה לעשות כשיש בתמונה גם אזורים כהים וגם בהירים ורוצים לעשות עליהם פעולות שונות, למשל להקטין או להגדיל את הניגודיות? לשם כך הוגדרו פונקציות העושות פעולות שונות עבור ערכים כהים (a<0.5) לעומת הבהירים. למשל, הפעלת פונקציה Overlay כאשר A=B מגדילה את הניגודיות בתמונה (פיקסלים כהים נעשים כהים יותר, ובהירים נעשים בהירים יותר).
למרות התחכום של Overlay, לעיתים התוצאה לא מספקת את עורכי התמונות. כאשר מנסים להבהיר פיקסלים, התוצאה נראית לעיתים גסה מידי. לכן, נוצרו גרסאות מעודנות יותר של Overlay הנקראות "soft-light", ותוכנות שונות משתמשות בנוסחאות מגוונות כדי ליצור תוצאה נעימה לעין ולחסוך הרבה עבודה מעורכי תמונות [1]. אתם מוזמנים להתנסות.
עבור תמונות צבעוניות הערבול נעשה באופן דומה מאוד. כל פיקסל מיוצג על ידי צירוף של שלושה מספרים (R,G,B) המייצגים שלושה צבעים (אדום, ירוק, כחול) שערכם נע בין 0 ל־1, ופעולת הערבול נעשית בנפרד על כל מספר.
רוב האנשים מסתכלים על טבלאות מספרים כעל צירוף משמים של ספרות, אך עורכי תמונות יכולים לראות בעיני רוחם את המספרים מאחורי הצבעים ואת הפונקציות המתמטיות בתור דרך לשיפור צבע התמונות. המתמטיקה מספקת שלל כלים לעריכת תמונות, אולם גם עם כל שכלולי הטכנולוגיה ושימוש באינטליגנציה מלאכותית אין עדיין תחליף לעיניים של עורכי תמונות מנוסים, המשתמשים בכלים המתמטיים כדי לערוך את התמונות המרהיבות שאנו נהנים מהן.
עריכה: רגב צברי.
מקורות וקריאה נוספת:
[1] ערבול - blending
[2] פרבולות ותמונות
[3] שקיפות חלקית
[4] לינק לאפליקציה