אינטרפולציה ביליניארית

מתוך ויקיפדיה, האנציקלופדיה החופשית
ארבע הנקודות האדומות מסמלות את נקודות הנתונים והנקודה הירוקה היא הנקודה שבה אנחנו רוצים אינטרפולציה.
דוגמת אינטרפולציה ביליניארית על יחידה מרובעת עם ערכי z של 0, 1, 1, ו-0.5, כמצוין באיור. ערכי האינטרפולציה מיוצגים על ידי הצבע בכל נקודה.

במתמטיקה, אינטרפולציה ביליניארית היא מקרה פרטי של אינטרפולציה ליניארית עבור פונקציות אינטרפולציה של שני משתנים (למשל, x ו - y) על מרובע מרושת בשני ממדים (2D).

רעיון המפתח הוא לבצע אינטרפולציה ליניארית קודם בכיוון אחד, ואז שוב לכיוון השני. למרות שכל צעד הוא ליניארי בערכו, האינטרפולציה בכללותה אינה ליניארית אלא ריבועית עבור מיקום הדגימה.

אלגוריתם[עריכת קוד מקור | עריכה]

נניח שאנו רוצים למצוא את הערך של הפונקציה הלא ידועה בנקודה . ההנחה היא כי אנחנו יודעים את הערך של בארבע הנקודות:

ראשית נעשה אינטרפולציה ליניארית בכיוון . זו מניבה:

נמשיך על ידי אינטרפולציה בכיוון כדי להשיג את ההערכה הרצויה:

יש לשים לב כי אנו מגיעים לאותה תוצאה אם נעשה אינטרפולציה קודם לאורך כיוון ואז לאורך כיוון .

אלגוריתם חלופי[עריכת קוד מקור | עריכה]

דרך חלופית לכתוב את הפתרון לבעיית האינטרפולציה:

כאשר המקדמים הם פתרון המערכת הליניארית:

אם פתרון מועדף מבחינת (f(Q אז אנחנו יכולים לכתוב:

שבו המקדמים הם פתרון של:

רבוע היחידה[עריכת קוד מקור | עריכה]

אם אנו בוחרים מערכת קואורדינטות בה ארבע נקודות כאשר הידועות הן (0, 0), (0, 1), (1, 0), (1, 1), ואז אינטרפולציה הנוסחה מפושטת לכדי:

או באופן שקול, לפעולה המטריציונית:

לא ליניארי[עריכת קוד מקור | עריכה]

בניגוד למה שהשם מרמז, אינטרפולציה ביליניארית, אינה ליניארית; אלא תוצר של שתי פונקציות ליניאריות.

לחלופין, ניתן לכתוב:

כאשר

בגאומטריות החזותיות שלמעלה, ערך הנקודה השחורה הוא הסכום של הערך בכל נקודה צבעונית מוכפל בשטח של המלבן של אותו הצבע, ומחולק בשטח הכולל של כל ארבעה המלבנים.

בשני המקרים, מספר הקבועים (ארבעה) תואמים את מספר נקודות הנתונים בהן נתון את האינטרפולנט הליניארי לאורך הקווים המקבילים בכיוון או , באופן שקול, אם או מוגדר כקבוע. לאורך כל קו ישר אחר, האינטרפולציה היא ריבועית. עם זאת, גם אם אינטרפולציה אינה ליניארי בנקודה ( ו - ), היא ליניארית במשרעת, כפי שיוצא מן המשוואות לעיל: כל מקדם , פרופורציונליים לערך של הפונקציה .

התוצאה של אינטרפולציה ביליניארית, אינה תלויה בבחירת הציר הראשון לאינטרפולציה. כלומר אם נבחרלבצע את אינטרפולציה הליניארית קודם בכיוון ואז ב , תוצאת הקירוב תהיה זהה.

הרחבה ברורה של אינטרפולציה ביליניארית לשלושה ממדים נקראת אינטרפולציה תרילינארית.

יישומים בעיבוד תמונה[עריכת קוד מקור | עריכה]

בראייה ממוחשבת ו עיבוד תמונה, אינטרפולציה ביליניארית הוא טכניקה בסיסית של "Resampling".

בתוך מיפוי מרקם, שימוש זה ידוע גם בשם סינון ביליניארי או מיפוי מרקם ביליניארי, ויכול לשמש כדי לייצר תמונה מציאותית סבירה. אלגוריתם משמש למפות מיקום של פיקסל, המקביל לנקודה על מפת המרקם. ממוצע משוקלל של מאפיינים (צבע, אלפא, וכו'.) של ארבעת הרכיבים שמסביב, מחושב, ומיוצר על המסך פיקסל. תהליך זה חוזר על עצמו עבור כל פיקסל ויוצרים את המרקם כולו.[1]

אינטרפולציה ביליניארית מחשיבה את 2x2 הערכים הקרובים של ערכי פיקסל ידועים לפיקסל הלא ידוע. אז נלקח ממוצע משוקלל של 4 הפיקסלים להגיע לערך הסופי של האינטרפולציה. המשקל שעל כל 4 הפיקסלים ערכים מבוסס על מרחק פיקסל מחושב (בשטח 2D) מכל אחת מהנקודות הידועות.[2]

Bilinear interpolation
דוגמה - אינטרפולציה ביליניארית על סולם הערכים האפשרי של הצגת "שחור-לבן"

כפי שניתן לראות בדוגמה משמאל, ערך העצמה בפיקסל שחושב להיות בשורה 20.2, וטור 14.5 יכול להיות מחושב על ידי אינטרפולציה ליניארית ראשונה בין הערכים בטור 14 ו-15 על כל שורות 20, 21, הנותנת:

ואז מבצעים אינטרפולציה באופן ליניארי בין ערכים אלה, הנותנת:

אלגוריתם זה מפחית חלק מהעיוות החזותי שנגרם על ידי שינוי גודל תמונה על ידי רכיב "זום" (zoom) לא אינטגרלי, בניגוד לאינטרפולציה "השכן הקרוב", אשר תגרום לקצת פיקסלים להיראות גדולים יותר מאשר אחרים, בתמונה המוגדלת.

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]