רז נוסק
Transcription
רז נוסק
התמרות אפיניות על תמונות רז נוסק ,כל הזכויות שמורות © 1 מהן טרנספורמציות גיאומטריות? zטרנספורמציות ליניאריות. zפועלות על הקואורדינאטות של הפיקסלים. zלא תלויות בצבעים בתמונה. zכוללות סיבובים ,הזזות ,הגדלות ועיוותים. רז נוסק ,כל הזכויות שמורות © 2 מדוע מבצעים התמרות גיאומטריות? zרגיסטרציה בין תמונות. zיישור תמונות אלכסוניות. zתיקון עיוותים בתמונה. zהצפנת מפות ) סיבובים (. zשינויי ZOOMלהבחנה בפרטים קטנים. רז נוסק ,כל הזכויות שמורות © 3 ואם כבר גיאומטרי אז למה ליניארי? zקווים ישרים נשארים ישרים zשימור יחסי אורכים/שטחים בתמונה zהתמונה המתקבלת עדיין "טבעית" Æזה היה פעם לוח שחמט Å רז נוסק ,כל הזכויות שמורות © 4 דוגמא לטרנספורמציה ליניארית zהגדלה פי 1.5ושיקוף: רז נוסק ,כל הזכויות שמורות © ⎤ ⎛ − 1.5 0 ⎞ ⎡ x ⎤ ⎡− 1.5 x ⎢ = ⎥ ⎢ ⎟⎟ ⎜⎜ ⎥ 0 1 . 5 y 1 . 5 y ⎦ ⎣ ⎦ ⎣⎠ ⎝ 5 ומה עם הזזה? zהזזה היא פעולה לא ליניארית כי היא משנה את מיקום ראשית הצירים. ⎤ a ⎞ ⎡0 0 ⎤ ⎡ ⎥ ⎢ = ⎥ ⎢ ⎟⎟ ⎦ a 22 ⎠ ⎣0 ⎦ ⎣0 12 ⎛ a11 ⎜⎜ ⎝ a 21 zהפתרון :קואורדינאטות הומוגניות ⎤⎡x ⎥⎢ y ⎥ ⎢ ⎦⎥ ⎢⎣ 1 רז נוסק ,כל הזכויות שמורות © ⎤⎡x ⎥⎢ y ⎦ ⎣ 6 ומה עם הזזה? zוהזזה פשוט מבוטאת על ידי רז נוסק ,כל הזכויות שמורות © ⎤ d x ⎞⎡ x ⎤ ⎡ x + d x ⎢ ⎥ ⎢⎟ ⎥⎥ d y ⎟ ⎢ y ⎥ = ⎢ y + d y ⎦⎥ 1 ⎟⎠ ⎢⎣ 1 ⎥⎦ ⎢⎣ 1 ⎛1 0 ⎜ ⎜0 1 ⎜0 0 ⎝ 7 טרנספורמציה אפינית zמקרה פרטי של התמרה גיאומטרית ליניארית zמיוצגת על ידי מטריצה 3x3 zאיננה מאפשרת ליצור עיוות פרספקטיבה zלפני ההגדרה המתמטית המדויקת נראה ממה היא מורכבת על ידי מספר דוגמאות רז נוסק ,כל הזכויות שמורות © 8 טרנספורמציית היחידה zהתמונה נשארת זהה. zכל התכונות של התמונה נשמרות. zיש אפס דרגות חופש. רז נוסק ,כל הזכויות שמורות © ⎤ ⎛ 1 0 0 ⎞⎡ x ⎤ ⎡ x ⎥ ⎢ ⎥ ⎢⎟ ⎜ ⎥ ⎜ 0 1 0 ⎟⎢ y ⎥ = ⎢ y ⎥ ⎜ 0 0 1 ⎟⎢1 ⎥ ⎢1 ⎦ ⎣ ⎦ ⎣⎠ ⎝ 9 הזזה zהתמונה נשארת זהה חוץ ממיקום הראשית. zכל התכונות של נשמרות ) אורכים ,שטחים זוויות (. zיש שתי דרגות חופש. ⎤ d x ⎞⎡ x ⎤ ⎡ x + d x ⎢ ⎥ ⎢⎟ ⎥⎥ d y ⎟ ⎢ y ⎥ = ⎢ y + d y ⎦⎥ 1 ⎟⎠ ⎢⎣ 1 ⎥⎦ ⎢⎣ 1 רז נוסק ,כל הזכויות שמורות © ⎛1 0 ⎜ ⎜0 1 ⎜0 0 ⎝ 10 טרנספורמציה קשיחה -סיבוב והזזה zכל התכונות של נשמרות ) אורכים ,שטחים זוויות (. zיש שלוש דרגות חופש. רז נוסק ,כל הזכויות שמורות © ⎞ dx ⎟ ⎟ dy ⎠⎟ 1 ) − sin(α ) cos(α 0 ) ⎛ cos(α ⎜ ) ⎜ sin(α ⎜ 0 ⎝ 11 איזומטריה – סיבוב ,הזזה ושיקוף zכל התכונות של נשמרות ) אורכים ,שטחים זוויות (. zיש שלוש ו"חצי" דרגות חופש. רז נוסק ,כל הזכויות שמורות © ⎞ dx ⎟ ⎟ dy ⎠⎟ 1 ) − sin(α ) cos(α 0 ) ⎛ ε cos(α ⎜ ) ⎜ ε sin(α ⎜ 0 ⎝ 12 טרנספורמציה דמיון zיחסי אורכים נשמרים, יחסי שטחים ,זוויות (. zיש ארבע דרגות חופש. רז נוסק ,כל הזכויות שמורות © ⎞ dx ⎟ ⎟ dy ⎠⎟ 1 ) − z sin(α ) z cos(α 0 ) ⎛ z cos(α ⎜ ) ⎜ z sin(α ⎜ 0 ⎝ 13 הגדלה לא איזוטרופית zיחסי שטחים נשמרים ,יחסי אורכים בכל כיוון ,מקבילות. ⎞ ⎛ 1 .5 0 0 ⎜ ⎟ ⎟ ⎜ 0 0 .5 0 ⎜ 0 ⎠⎟ 0 1 ⎝ zיש שתי דרגות חופש. רז נוסק ,כל הזכויות שמורות © 14 טרנס' לא אורתגונליות )(Skew zיחסי שטחים ,מקבילות ,יחס בין אורכים ⎞⎛1 1 0 ⎟ ⎜ ⎟⎜ 0 1 0 ⎟⎜0 0 1 ⎠ ⎝ zיש ארבע דרגות חופש. רז נוסק ,כל הזכויות שמורות © 15 טרנספורמציה אפינית zיש שש דרגות חופש zהגדרה: טרנספורמציה בה השורה התחתונה היא ,0 0 1 ו Aהיא מטריצה הפיכה zהשורה האחרונה דואגת שלא תהיה פרספקטיבה רז נוסק ,כל הזכויות שמורות © ⎞ dx ⎟ ⎟ dy ⎠⎟ 1 ⎞ ⎟⎟ ⎠ a 12 a 22 a12 a 22 0 ⎛ a11 ⎜ ⎜ a 21 ⎜ 0 ⎝ ⎛ a 11 ⎜⎜ = A ⎝ a 21 16 טרנספורמציה אפינית zקווים מקבילים נשארים מקבילים ,יחסי שטחים נשמרים וגם יחסי אורכים בין קווים מקבילים zמה ההגיון מאחורי ששת דרגות החופש? רז נוסק ,כל הזכויות שמורות © 17 דוגמא – טרנס' אפינית zהדגמת ,LenaKot פרמטרים בניית סיבוב על ידי skew רז נוסק ,כל הזכויות שמורות © 18 הרכבת טרנספורמציות zהגדלה כפולה: ⎤ ⎛ 2 0 0 ⎞ ⎛ 3 0 0 ⎞⎡ x ⎤ ⎛ 6 0 0 ⎞⎡ x ⎥ ⎢⎟ ⎜ ⎜ ⎟ ⎜ ⎥ ⎢⎟ ⎥ ⎜ 0 2 0 ⎟ • ⎜ 0 3 0 ⎟⎢ y ⎥ = ⎜ 0 6 0 ⎟⎢ y ⎥ ⎜ 0 0 1 ⎟ ⎜ 0 0 1 ⎟⎢1 ⎥ ⎜ 0 0 1 ⎟⎢1 ⎦ ⎣⎠ ⎝ ⎝ ⎠ ⎝ ⎦ ⎣⎠ zהזזה כפולה: ⎤ 2 px + d x ⎞⎡ x ⎥ ⎢⎟ ⎥ 2 p y + d y ⎟⎢ y ⎥ ⎟⎢1 1 ⎦ ⎣⎠ px ⎞⎡ x ⎤ ⎛ 2 0 ⎜ ⎥ ⎢⎟ p y ⎟⎢ y ⎥ = ⎜ 0 2 1 ⎟⎠ ⎢⎣ 1 ⎥⎦ ⎜⎝ 0 0 dx ⎞ ⎛1 0 ⎜ ⎟ dy ⎟•⎜0 1 1 ⎟⎠ ⎜⎝ 0 0 ⎛2 0 ⎜ ⎜0 2 ⎜0 0 ⎝ zנשים לב שההרכבה היא שמאלית! רז נוסק ,כל הזכויות שמורות © 19 פירוק האפיניות zהטרנספורמציה מסתכמת בהפעלת Aולאחר מכן הזזה ב.d- zכאשר Aהיא רז נוסק ,כל הזכויות שמורות © ⎞ dx ⎟ ⎟ dy ⎠⎟ 1 ⎞ ) ⎟⎟ = R (ϕ ) ⋅ R ( − θ ) ⋅ Z ⋅ R (θ ⎠ A a12 a22 0 a 12 a 22 ⎛ a11 ⎜ ⎜ a21 ⎜ 0 ⎝ ⎛ a 11 ⎜⎜ ⎝ a 21 20 פירוק האפיניות ⎛ a11 ⎜⎜ ⎝ a 21 a12 ⎞ ⎛ cos(ϕ ) ⎟⎟ = ⎜⎜ a 22 ⎠ ⎝ sin(ϕ ) ⎛ cos( −θ ) ⎜⎜ ⎝ sin( −θ ) − sin(ϕ ) ⎞ ⎟⎟ • cos(ϕ ) ⎠ − sin( −θ ) ⎞⎛ Z x 0 ⎞⎛ cos(θ ) ⎟⎜⎜ ⎟⎟⎜⎜ cos( −θ ) ⎠⎝ 0 Z y ⎟⎠⎝ sin(θ ) היאA כאשרz − sin(θ ) ⎞ ⎟⎟ cos(θ ) ⎠ : דוגמאz A 21 © כל הזכויות שמורות,רז נוסק פירוק האפיניות A zלפי הפירוק ) R(θ Z רז נוסק ,כל הזכויות שמורות © 22 פירוק האפיניות A zלפי הפירוק ) R (−θ ) R(ϕ רז נוסק ,כל הזכויות שמורות © 23 פירוק האפיניות zהגדרה נוספת לאפיניות: ביצוע מתיחה לא אחידה בכיוונים ניצבים ,לאחר מכן סיבוב והזזה. zשש דרגות החופש הן: – 1זווית צירי המתיחה. – 1סיבוב. – 2הזזה בצירים Xו.Y- רז נוסק ,כל הזכויות שמורות © – 2מתיחה לא אחידה. 24 תכונות נוספות של האפיניות zשטח הצורות בתמונה גדל פי: ⎞ a12 ⎟⎟ = Z x ⋅ Z y ⎠ a 22 ⎞ dx ⎟ ⎟ dy ⎠⎟ 1 רז נוסק ,כל הזכויות שמורות © ⎛ a11 ⎜⎜ det ⎝ a 21 a12 a22 0 ⎛ a11 ⎜ ⎜ a21 ⎜ 0 ⎝ 25 תכונות נוספות של האפיניות zאינווריאנטיות תחת הרכבה: ⎞* * * ⎛ ⎞* * * ⎛ ⎞* * * ⎛ ⎜ ⎜ ⎟ ⎜ ⎟ ⎟ ⎟* * * ⎜ = ⎟* * * ⎜ • ⎟* * * ⎜ ⎟⎜ 0 0 1⎟ ⎜ 0 0 1⎟ ⎜ 0 0 1 ⎝ ⎝ ⎠ ⎝ ⎠ ⎠ ⎞7 ⎟ ⎟ 21 11 ⎠⎟ 0 1 25 רז נוסק ,כל הזכויות שמורות © 1⎞ ⎛ 5 ⎜ ⎟ 0 ⎟ = ⎜ 15 1 ⎟⎠ ⎜⎝ 0 7 9 0 6⎞ ⎛5 ⎜ ⎟ 8⎟ • ⎜0 1 ⎟⎠ ⎜⎝ 0 2 0 0 ⎛1 ⎜ ⎜3 ⎜0 ⎝ 26 Matlab מימוש ב T = maketform('affine',[-0.4 -0.8 20; 0.7 0.1 10; 0 0 1]'); im = imread(‘im.jpg'); res = imtransform(im,T); 27 © כל הזכויות שמורות,רז נוסק Matlab פירוק האפיניות ב T = [ 1 2 3; 4 5 6; 0 0 1]; dXY = T(1:2,3); [u s v] = svd(T(1:2,1:2)); Rφ = u*v’; Rθ = v’; Z = s; :הסבר A = U ⋅ S ⋅ V T = (U ⋅ V T ) ⋅ V ⋅ S ⋅ V T 28 © כל הזכויות שמורות,רז נוסק איך הטרנספורמציה מתבצעת בפועל zבמיפוי רגיל נוצרת בעיה חמורה. ? ? ? ? ? T ? רז נוסק ,כל הזכויות שמורות © 29 איך הטרנספורמציה מתבצעת בפועל zרואים בברור את המחסור במידע. רז נוסק ,כל הזכויות שמורות © 30 איך הטרנספורמציה מתבצעת בפועל zפתרון: חישוב הטרנספורמציה הפוכה ) .T-1איך? ( הפעלת T-1על תמונת היעד ) .מדוע T-1אפינית? ( קבלת פיקסל תואם בתמונה המקורית. אם הקואורדינאטות לא שלמות אז מתבצעת אינטרפולציה כלשהי. רז נוסק ,כל הזכויות שמורות © 31 איך הטרנספורמציה מתבצעת בפועל zפתרון נקרא .Back Projection T-1 T-1 רז נוסק ,כל הזכויות שמורות © 32 שאלות? רז נוסק ,כל הזכויות שמורות © 33 טרנספורמציה פרוייקטיבית רז נוסק ,כל הזכויות שמורות © 34 מבוא לפרספקטיבה zמה זאת פרספקטיבה? zב 3D-ככל שמתקדמים לעומק ,כך האובייקטים קטנים zקטנים – היטל במישור רשתית העין ) (X,Yקטן zעקב דימיון משולשים רז נוסק ,כל הזכויות שמורות © 35 מבוא לפרספקטיבה עין zגודל אובייקט נראה: θ W ) W ' = ∝ tan(θ Z zנדרש לחלק בעומק רז נוסק ,כל הזכויות שמורות © רוחב עומק W Z רוחב 36 מבוא לפרספקטיבה zגרפיקה ממוחשבת לא מציאותית חודרת לחיינו zגם תמונה ללא פרספקטיבה נראת תקינה zבעולם הטבעי תמיד יש פרספקטיבה רז נוסק ,כל הזכויות שמורות © 37 מבוא לפרספקטיבה zבדו מימד ,קו העומק מוטל על מישור X,Y zנקודת העלמות יחידה רז נוסק ,כל הזכויות שמורות © 38 מבוא לפרספקטיבה zבדו מימד ,קו העומק מוטל על מישור X,Y zהתקדמות בכיוון זה – מקטינה את האובייקטים רז נוסק ,כל הזכויות שמורות © 39 מבוא לפרספקטיבה zככל ש Xגדל כך הגובה קטן zככל ש Y-גדל כך הרוחב קטן zהצירים מדמים את העומק רז נוסק ,כל הזכויות שמורות © 40 מבוא לפרספקטיבה zבטרנספורמציה פרספקטיבית נחלק בערכי XוY- zקואורדינטות מוכללות zפעולה אפינית רז נוסק ,כל הזכויות שמורות © ⎤⎡x ⎥⎢y ⎥ ⎢ ⎦⎥ ⎢⎣ 1 ⎤ c ⎞ ⎡ x ⎤ ⎡ ax + by + c ⎢ ⎥ ⎢⎟ ⎥⎥ f ⎟ ⎢ y ⎥ = ⎢dx + ey + f ⎦⎥ ⎣⎢ ⎦⎥ 1 ⎟⎠ ⎢⎣ 1 1 ⎤⎡x ⎥⎢y ⎦ ⎣ ⎛a b ⎜ ⎜d e ⎜0 0 ⎝ 41 מבוא לפרספקטיבה zהפעלת טרנספ' ⎤'c ⎞ ⎡ x ⎤ ⎡ ax + by + c ⎤ ⎡ x ⎢ ⎥ ⎢⎟ ⎥⎥' f ⎟ ⎢ y ⎥ = ⎢dx + ey + f ⎥⎥ = ⎢⎢ y ⎦⎥ ' 1 ⎟⎠ ⎢⎣ 1 ⎥⎦ ⎢⎣ gx + hy + 1 ⎥⎦ ⎢⎣ z ⎛a ⎜ ⎜d ⎜g ⎝ b e h zעל מנת לקבל חזרה 1במימד ’ ,Zנחלק ב:Z’- ⎤ ax + by + c ⎡ x ' ⎤ ⎡ ⎥⎥ ⎢ y '⎥ ⇒ ⎡ x'⎤ = ⎢⎢ gx + hy + 1 ⎥ ⎢ ⎥ ⎢ y '⎥ ⎢ dx + ey + f ⎢ ⎦ ⎣ ⎦⎥ ' ⎢⎣ z ⎦⎥ ⎣ gx + hy + 1 רז נוסק ,כל הזכויות שמורות © 42 מבוא לפרספקטיבה zחזרה לקואורדינטות הומוגניות: – Z1מישור הומוגני – Z2מישור הטרנספורמציה – Vוקטור התוצאה ’ – Vוקטור מנורמל ל 2D רז נוסק ,כל הזכויות שמורות © 43 טרנ' פרוייקטיבית zפרספקטיבה בציר :X ⎛ 1 0 0 ⎞⎡ x ⎤ ⎡ x ⎤ ⎡ x ⎤ ⎢ ⎥ ⎢⎟ ⎜ ⎥gx + 1 ⎥ ⎢ ⎜ 0 1 0 ⎟⎢ y ⎥ = ⎢ y ⎥ ⇒ ⎢ y ⎥ ⎥⎜ g 0 1 ⎟ ⎢ 1 ⎥ ⎢ gx + 1⎥ ⎢ gx + 1 ⎦ ⎣ ⎦ ⎣ ⎦ ⎣⎠ ⎝ רז נוסק ,כל הזכויות שמורות © 44 טרנ' פרוייקטיבית zפרספקטיבה בציר :X רז נוסק ,כל הזכויות שמורות © 45 טרנ' פרוייקטיבית zפרספקטיבה בציר :Y ⎛ 1 0 0 ⎞⎡ x ⎤ ⎡ x ⎤ ⎡ x ⎤ ⎢ ⎥ ⎢⎟ ⎜ ⎥hy + 1 ⎥ ⎢ ⎜ 0 1 0 ⎟⎢ y ⎥ = ⎢ y ⎥ ⇒ ⎢ y ⎥ ⎥⎜ 0 h 1 ⎟ ⎢ 1 ⎥ ⎢hy + 1⎥ ⎢ hy + 1 ⎦ ⎣ ⎦ ⎣ ⎦ ⎣⎠ ⎝ רז נוסק ,כל הזכויות שמורות © 46 טרנ' פרוייקטיבית zפרספקטיבה בציר :Y רז נוסק ,כל הזכויות שמורות © 47 פיצוי שגיאת הקטנה zפרספקטיבה נאיבית יוצרת שגיאה בגודל התמונה: ⎡ ⎤ 0 0 ⎞⎡ x x ⎤ ⎛ 1 ⎢ ⎥ ⎢⎟ ⎜ ⎥ = 0 1 0 y y ⎢ ⎥ ⎢⎟ ⎜ ⎥ ⎥⎜ 0.2 0.3 1 ⎟ ⎢ 1 ⎥ ⎢0.2 x + 0.3 y + 1 ⎦ ⎣ ⎦ ⎣⎠ ⎝ zגודל התמונה יקטן פי 0.2 x + 0.3 y + 1 zאם גודל התמונה הוא 300x300פיקסלים התמונה תקטן פי !150תוצאה 2x2 :פיקסלים: רז נוסק ,כל הזכויות שמורות © 48 פיצוי שגיאת הקטנה zפרספקטיבה נאיבית יוצרת שגיאה בגודל התמונה: zמתי גודל התמונה ישמר? רז נוסק ,כל הזכויות שמורות © 49 פיצוי שגיאת הקטנה zמתי גודל התמונה ישמר? zכאשר פינות האלכסון המשני נשמרות רז נוסק ,כל הזכויות שמורות © 50 פיצוי שגיאת הקטנה zפינות האלכסון המשני הם וקטורים עצמיים של התמרה ⎤ ⎡ 0 ⎥ ⎢ sizeY ⎢ ⎥ ⎦⎥ ⎢⎣ 1 ⎤ ⎡ sizeX ⎥ ⎢ 0 ⎢ ⎥ ⎦⎥ ⎢⎣ 1 ⎟⎞ 0 ⎟0 ⎟ ⎟1 ⎠ 0 1 + pY pY sizeY ⎛ 1 + pX ⎜ ⎜ 0 ⎜ pX ⎜ sizeX ⎝ פרספקטיבהpX, pY : גודל תמונהsizeX, sizeY : רז נוסק ,כל הזכויות שמורות © 51 פיצוי שגיאת הקטנה : הוכחהz ⎛ 1 + pX ⎜ ⎜ 0 ⎜ pX ⎜ sizeX ⎝ ⎛ 1 + pX ⎜ ⎜ 0 ⎜ pX ⎜ sizeX ⎝ 52 0 1 + pY pY sizeY 0 1 + pY pY sizeY 0 ⎞⎟ ⎡ sizeX ⎤ ⎡ sizeX (1 + pX )⎤ ⎡ sizeX ⎤ ⎥=⎢ 0 ⎥ 0 0 ⎟ ⎢⎢ 0 ⎥⎥ = ⎢⎢ ⎥ ⎢ ⎥ ⎟ pX + 1 ⎥⎦ ⎢⎣ 1 ⎥⎦ 1 ⎟ ⎢⎣ 1 ⎥⎦ ⎢⎣ ⎠ 0 ⎞⎟ ⎡ 0 ⎤ ⎡ 0 ⎤ ⎡ 0 ⎤ 0 ⎟ ⎢⎢ sizeY ⎥⎥ = ⎢⎢ sizeY (1 + pY )⎥⎥ = ⎢⎢ sizeY ⎥⎥ ⎟ pY + 1 ⎥⎦ ⎢⎣ 1 ⎥⎦ 1 ⎟ ⎢⎣ 1 ⎥⎦ ⎢⎣ ⎠ © כל הזכויות שמורות,רז נוסק פרספקטיבה חזקה zערכי פרספקטיבה טיפוסיים הם .~0.1 דוגמא עם ערך ~10 רז נוסק ,כל הזכויות שמורות © 53 דוגמא – טרנס' פרספקטיבה zהדגמת ,LenaKot הדגמת autoScale שליטה ב pY - רז נוסק ,כל הזכויות שמורות © 54 טרנספורמציה כללית zטרנס' כללית – 8נעלמים רז נוסק ,כל הזכויות שמורות © 55 Matlab מימוש ב T = maketform(‘projective',[-0.4 -0.8 20; 0.7 0.1 10; 0.001 0.002 1]'); im = imread(‘im.jpg'); res = imtransform(im,T); 56 © כל הזכויות שמורות,רז נוסק רז נוסק ,כל הזכויות שמורות © 57