5.10. פעולות סיביות¶
הפעולות האריתמטיות בעמוד הקודם עובדות על ערכי פיקסלים – הבהירויות השלמות או מילות הצבע הארוזות. פעולות סיביות עובדות רמה אחת נמוכה יותר, על הסיביות הבודדות בתוך הערכים האלו. עבור תמונות בינאריות, שבהן כל פיקסל הוא רק סיבית אחת, פעולות הסיביות הן האריתמטיקה הטבעית.
5.10.1. משפחת הסיביות¶
מחלקת Image חושפת את הסט המלא של פעולות סיביות בעלות שני קלטים:
b_and()– AND סיביות.b_or()– OR סיביות.b_xor()– OR בלעדי (exclusive-OR) סיביות.b_nand()– NOT-AND.b_nor()– NOT-OR.b_xnor()– NOT-XOR.
כל אחת פועלת לכל סיבית על כל בית של חוצצי שתי התמונות. בתמונה בינארית, שבה כל בית מכיל שמונה פיקסלים, הפעולה רצה על שמונה פיקסלים לכל בית מעובד. בתמונה בגווני אפור או צבעונית היא רצה על כל סיבית של כל ערוץ.
למעלה: טבלאות האמת של AND, OR, ו-XOR – הסמנטיקה ברמת הסיבית של כל פעולה. למטה: שתי תמונות בינאריות A ו-B והתוצאה של A.b_and(B), שבה התוצאה שומרת רק את המיקומים שהיו דלוקים בשני הקלטים.¶
5.10.2. שילוב מסכות¶
השימוש הנפוץ ביותר בפעולות אלו הוא שילוב מסכות. מסכה היא תמונה בינארית שאומרת, מיקום אחר מיקום, האם תנאי כלשהו מתקיים. שתי מסכות המתארות תנאים שונים משולבות למסכה אחת המתארת תנאי מורכב באמצעות אחת מפעולות הסיביות:
b_and() מייצרת מסכה שמיקומיה דלוקים רק כאשר שתי מסכות הקלט היו דלוקות באותו מיקום – ה“וגם“ הטבעי של שני תנאים. שילוב מסכת קדמת תמונה עם הפלט של מעבר סיווג סף באמצעות b_and מגביל את ההתאמות של הסף לקדמת התמונה.
b_or() מייצרת מסכה שמיקומיה דלוקים בכל פעם שאחת ממסכות הקלט הייתה דלוקה – ה“או“ הטבעי. ביצוע OR לשני פלטים מסוננים-בסף יחד מייצר מסכה אחת המכסה כל דבר שהתאים לאחד משני טווחי צבע.
b_xor() מייצרת מסכה שמיקומיה דלוקים בכל פעם שבדיוק אחת ממסכות הקלט הייתה דלוקה. שימושית לזיהוי מיקומים שבהם שתי מסכות אינן תואמות – המיקומים שבהם פלט הסף השתנה בין שני פריימים, ההפרש הסימטרי בין שתי מסכות ייחוס, דברים מהסוג הזה.
הווריאנטים השליליים – b_nand(), b_nor(), b_xnor() – מייצרים את המשלים של מקביליהם הלא-שליליים. הם שימושיים כאשר הדרך הטבעית לתאר תנאי היא ”אף אחד מאלו“ או ”לא שניהם“ – לא נפוץ, אך כדאי לדעת שהם קיימים כך שלא יהיה צורך להרכיב את השלילה על ידי ביצוע AND ולאחריו invert() נפרד.
5.10.3. סיביות על תמונות לא-בינאריות¶
פעולות הסיביות רצות גם על תמונות בגווני אפור וצבעוניות. הן שימושיות שם בעיקר כאשר התמונה מכילה תוכן דמוי-בינארי – פריים בגווני אפור שכל פיקסליו הם 0 או 255, פריים RGB565 עם פיקסלים שחורים-לחלוטין ולבנים-לחלוטין בלבד – שם AND, OR, ו-XOR נותנים את אותם שילובים שהיו נותנים בתמונה בינארית אמיתית. עבור תמונות הפרושות על פני מלוא טווח הערכים, הפעולות האריתמטיות בעמוד הקודם בדרך כלל מתאימות יותר.