היסטוגרמת צבעים היא ייצוג של התפלגות הצבעים בתמונות דיגיטליות. היסטוגרמת הצבעים מייצגת את מספר הפיקסלים הצבועים בטווח מסוים של צבעים. נסביר כיצד ניתן להשתמש בהיסטוגרמות אלו כדי לשפר את איכות התמונות שאנו מצלמים ומה הקשר בין איכות התמונה, גודלה וכמות הצבעים השונים בה?
רובנו אוהבים כדורגל, והטענה הרווחת בכדורגל הישראלי היא שחיפה ירוקה. אומנם קהל היעד לא יתחבר לצורת הבדיקה הזו, אבל ישנה דרך פשוטה מאוד לבדוק את הטענה – לצלם את העיר. נוכל לבנות את היסטוגרמת הצבעים בתמונה עבור כל סוג של מרחב צבעים, אם כי המונח משמש לעיתים קרובות יותר עבור מרחב RGB. מרחב צבעים זה הוא המרחב הסטנדרטי והמוכר המרכיב כל פיקסל משילוב בין צבע אדום, ירוק וכחול [1]. בתמונות מונוכרומטיות (תמונות בגווני אפור) ניתן להשתמש במושג היסטוגרמת עוצמות, שכן לכל פיקסל יש עוצמת הארה בין שחור (ללא אור בכלל) ללבן (כמות אור מקסימלית). במקרה של העיר חיפה נוכל פשוט לספור כמה פיקסלים בתמונות שצילמנו צבועים בירוק וכמה בצבעים אחרים, וכך ניתן להר הכרמל להכריע עבורנו את הסוגיה אחת ולתמיד. לאחר שהכרענו סוגיה נצחית זו, נתייחס בשאר הדוגמאות וההסברים בפוסט לתמונות מונוכרומטיות כדי לפשט את העניין.
היסטוגרמה של תמונה מציגה לנו את כמות הפיקסלים מכל עוצמה בדיאגרמת עמודות [2]. ליתר דיוק, בדרך כלל לא נספור את כמות הפיקסלים מכל עוצמה בדיוק, אלא נחלק את טווח העוצמות למקטעים, למשל נספור את כל הפיקסלים בעוצמה 1 עד 20 בעמודה הראשונה, 21 עד 40 בעמודה הבאה, וכן הלאה.
היסטוגרמת צבעים בתמונה מספקת לנו מידע על התפלגות הצבעים בתמונה ועל כמות המידע שהתמונה מכילה. כמות הצבעים האפשרית בתמונה תלויה בזיכרון המוקצה לתמונה, אשר מחושב בצורה הבאה [3]:
Image memory = width * height * channels * bit depth
ובמילים – הזיכרון הנדרש לתמונה תלוי במכפלת ממדי התמונה, מספר הערוצים בתמונה (שלושה עבור תמונה צבעונית, אחד עבור תמונה מונוכרומטית) וכמות המידע המוקצה לכל פיקסל (כמות ביטים של זיכרון לפיקסל בודד). כמות המידע המוקצה לכל פיקסל משפיע על מספר הגוונים השונים שניתן להשתמש בהם בתמונה. למשל, אפשר להציג תמונה המכילה 256 גווני אפור שונים, ואם נרצה תמונה חדה וברורה יותר נוכל להציג אותה ב־4096 גווני אפור (אין קשר לספר, ו־50 גווני אפור הם רמת הפרדה נמוכה מדי בין פרטים בין כה וכה). אם נרצה להפוך תמונה לקלה יותר (כזאת שתעמיס פחות על יחידת העיבוד ותאפשר עיבוד מהיר יותר של הפרטים בה) נוכל להקטינה או לצמצם את כמות הצבעים בה. כך נוכל להעביר זרם תמונות מהיר יותר בזמן נתון, אך בד בבד נפגע באיכותה. לדוגמה, תמונה מונוכרומטית המכילה 256 גווני אפור תהיה ברורה יותר ויפה יותר מתמונה זהה המכילה רק 64 גווני אפור (דוגמאות נוספות ניתן לראות בקישור מספר 2).
ניתן לראות את השינוי באיכות התמונה. התמונה המקורית הכילה 256 גווני אפור, וכל תמונה שאחריה הכילה חצי מכמות הגוונים בתמונה הקודמת, כך עד לתמונה האחרונה המכילה שני צבעים בלבד – לבן ושחור.
נחזור להיסטוגרמות, ונדמיין שצילמנו תמונה חשוכה, אך באיכות גבוהה. כלומר, יכולת הפרדה גבוהה המאפשרת להשתמש במספר רב של צבעים בתמונה אך לא מנוצלת היטב. נרצה לנצל את כל מגוון הצבעים הנתון לנו כדי שההפרדה בין עצמים שונים תהיה ברורה וכדי שהתמונה תהיה חדה ככל הניתן. אולם כאמור, צילמנו תמונה חשוכה ולא נכנס הרבה אור לתמונה, ולכן היא שחורה ברובה. נוסף על היותה של התמונה שחורה, פיקסלים רבים מאוד מקובצים באותו אזור צבעים, כלומר ההפרדה בין עצם אחד לשכנו כמעט ולא ניתנת להבחנה כי השתנות הצבע ביניהם קטנה מאוד. אם נסתכל על היסטוגרמה של תמונה כזו, נראה כי רוב הצבעים בתמונה מקובצים באזור גווני אפור נמוכים מאוד וקרובים לשחור, ואין ייצוג לצבעים הבהירים בתמונה. במקרה זה נוכל למתוח את ההיסטוגרמה [4] (באנגלית histogram equalization), כלומר לפרוס את הצבעים על כל הצבעים הקיימים במסגרת הזיכרון המוקצה לנו. נרצה שהצבע הבהיר ביותר בתמונה יהיה מואר כולו (כלומר לבן), והצבע הכהה ביותר בתמונה יהיה שחור, וכלל הצבעים בתמונה יתפלגו ביניהם. בצורה זו עצמים שונים ייבדלו זה מזה בעזרת גווני אפור רבים יותר, כך שההפרדה ביניהם תהיה חדה יותר וברורה יותר לעין.
דיברנו בפוסט זה על היסטוגרמות של תמונות. ישנן, כמובן, דרכים נוספות [5] לערוך סטטיסטיקות על תמונות, כמו דיאגרמות פאי [6], ממוצע וסטיות תקן של ערכי הפיקסלים בתמונה. כל שיטה מאפשרת הבנה נרחבת של התמונה ומאפייניה, ובעזרתה ניתן לבצע בתמונות פעולות כמו הגדלת בהירות, סימון עצמים ומציאת קוויי מתאר של עצמים.
מקורות וקריאה נוספת
[1] - עיבוד תמונות דיגיטליות, מדע גדול בקטנה
[2] - הסבר נוסף להיסטוגרמות של תמונות
[3] - הסבר לחישוב bit depth וזכרון נדרש לתמונות
[4] - הסבר נוסף על איזון היסטוגרמה
[5] - גונון (dithering), מדע גדול בקטנה
[6] - קטע מהסדרה How I met your mother המתאר דיאגרמות פאי ועמודות בצורה משעשעת