(x+1,y+1), (x-1,y-1), (x-1,y+1), (x+1,y-1)

Download Report

Transcript (x+1,y+1), (x-1,y-1), (x-1,y+1), (x+1,y-1)

‫מבוא לתמונות‪ ,‬ייצוגים וכמה‬
‫אלגוריתמים בסיסיים‬
‫אלכסנדר ברנגולץ‬
‫דואר אלקטרוני‪: [email protected]‬‬
‫מה זו תמונה בינארית?‬
‫‪ ‬נתבונן בתמונה‪:‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪2‬‬
‫סביבה ופעולות סביבתיות‬
‫שכנות בין הפיקסלים היא מונח חשוב בתיאור גבולות‬
‫העצמים וחלקי אזורים בתמונה‪.‬‬
‫‪ ‬סביבת‪ :4-‬קבוצת שכנים פשוטה ביותר‪ :‬עבור‬
‫פיקסל ‪ p‬במקום ‪ (x,y),‬סביבת‪ 4-‬כוללת ‪4‬‬
‫פיקסלים‪ :‬השכנים האנכיים והאופקיים במקומות‪:‬‬
‫)‪(x+1,y), (x-1,y), (x,y+1), (x,y-1‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪3‬‬
‫סביבת‪8-‬‬
‫סביבת‪ 8 :8-‬שכנים הקרובים ביותר לפיקסל מגדירים‬
‫סביבת ‪ 8‬שלו‪ .‬אלה ‪ 4‬שכנים האלכסוניים‬
‫)‪(x+1,y+1), (x-1,y-1), (x-1,y+1), (x+1,y-1‬‬
‫בנוסף לנקודות בסביבת‪:4-‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪4‬‬
‫סביבת‪-m‬‬
‫סביבת ‪-m:‬ניתן להגדיר גם סביבות גדולות יותר‬
‫ולפעמים ישנו להן שימוש‪ .‬למשל סביבה‪:‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪5‬‬
‫סביבת‪-6‬‬
‫בתור דוגמא נוספת לסביבה נגדיר סביבת‪ 6-‬כסביבת‪-‬‬
‫‪ 4‬יחד עם פיקסים‪:‬‬
‫)‪(x-1,y-1‬ו )‪ (x-1,y+1‬אם ‪ y‬זוגי‬
‫)‪(x+1,y+1‬ו )‪ (x+1,y-1‬אם ‪ y‬אי זוגי‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪6‬‬
‫קשירות)‪(Connectedness‬‬
‫‪ ‬מסלול‪ 4-‬הינו מסלול שבו קיים בין שכנים לאורך‬
‫המסלול קשר בסביבה ‪.4‬‬
‫‪ ‬מסלול‪ 8-‬כנ”ל רק עם קשר חלש יותר ‪ -‬קשר ‪8‬‬
‫‪ ‬שתי נקודות ‪ P‬ו ‪ Q‬שייכות לאזור ‪ S‬נקראות‪m-‬‬
‫קשירות אם ביניהם קיים מסלול ‪-m‬העובר באזור‪.‬‬
‫‪ ‬אם כל הנקודות באזור הן‪ m-‬קשירות אזי אזור גם‬
‫נקרה‪ m-‬קשיר‪.‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪7‬‬
‫דוגמאות מסלולים וקשירות‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪8‬‬
‫גבולות‬
‫‪ ‬גבול של אזור ‪ S‬הינו אוסף‬
‫של נקודות של ‪ S‬שיש להן‬
‫שכנים מחוץ ל‪S.‬‬
‫‪ ‬כדי למנוע אי הבנות‬
‫נתיחס בתור שכנות‬
‫לשכנות‪ .4-‬במקרה כזה‬
‫טענההוא גבול‪.4-‬‬
‫גבול‬
‫אם גבול הוא בעל שכנות‪ 4-‬אז קו גבול הוא מסלול‪8-‬‬
‫‪:‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪9‬‬
‫קידוד מסלולים‬
‫‪ ‬ניתן קידוד לכל כיוון‬
‫האפשרי של המסלול‪.‬‬
‫למשל לסביבת‪ 8-‬מספיקה‬
‫מילה באורך ‪ 3‬ביט‪.‬‬
‫‪1‬‬
‫‪2‬‬
‫‪0‬‬
‫‪8‬‬
‫‪3‬‬
‫‪5‬‬
‫‪7‬‬
‫‪6‬‬
‫‪ ‬נקדד את המסלול‬
‫‪0010000000000775555680‬‬
‫שמשמול‪:‬‬
‫‪00777555555522235677‬‬
‫‪5522222‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪10‬‬
‫קידוד תמונה (שורות ו)‪RLC‬‬
‫‪ ‬לצורך קידוד תמונה נקדד כל שורה לחוד‪ .‬אם בתמונה ישנו‬
‫‪m‬צבעים אז נרשום לכל קטע צבע שלו ואורך‪ .‬למשל‪:‬‬
‫‪b3r4g5b2, b3r4g5b2,b7g5b2‬‬
‫‪ ‬הקידוד הזה הוא חסכוני כאשר תמונה מורכבת מאזורים‬
‫גדולים בעלי גוון אחד‪.‬‬
‫‪ ‬במקרה של תמונה בינארית אין צורך בקידוד צבע‬
‫‪ ‬לפעמים משתמשים בשיטת קידוד ע”י נקודת התחלה ואורך‬
‫של האזור בצבע מסוים (למשל שחור)‪)1,3(2, )2,0( 2 :‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪11‬‬
‫חלוקה לאזורים קשירים‪.‬‬
‫כדי לחלק תמונה לאזורים קשירים בעלי אותו גוון‬
‫נעבור על התמונה בסריקת ‪ raster‬וניתן לכל‬
‫פיקסל ערך‪:‬‬
‫‪ ‬זהה לפיקסל משמול אם הוא בעל אותו גוון‬
‫‪ ‬אם פיקסל מלמעלה הוא בעל אותו גוון וערך‬
‫שונה שייך את הפיקסלים לאותה קבוצה‪.‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪12‬‬
‫קוד שרשרת)‪(Chain code‬‬
‫‪ ‬דרך אחרת לקדד תמונה מורכבת מאזורים בעלי גוונים‬
‫אחידים היא לקדד את גבולות האזורים‬
‫‪[Freeman,1961]:‬‬
‫פיקסל התחלה;‬
‫– מיקום של‬
‫– גוון (רמת אפר) של האזור;‬
‫– שורה של מילות קידוד של‬
‫הגבול‪.‬‬
‫למשל‪ ,‬ניתן לקדד את כיווני‬
‫הגבול ב ‪ 3‬ביטים‪:‬‬
‫עיבוד תמונות ואותות במחשב‬
‫‪1‬‬
‫‪2‬‬
‫‪0‬‬
‫‪8‬‬
‫‪3‬‬
‫‪5‬‬
‫‪7‬‬
‫‪6‬‬
‫©א’ ברנגולץ‬
‫‪13‬‬
‫דוגמת קידוד שרשרת‬
‫‪ ‬נקודת התחלה‪)4,3( :‬‬
‫‪ ‬גוון‪: light blue‬‬
‫‪ ‬קידוד הגבול‪:‬‬
‫‪0000071006664435666...‬‬
‫‪ ‬נקודת התחלה‪)4,7( :‬‬
‫‪ ‬גוון‪: green‬‬
‫‪ ‬קידוד הגבול‪:‬‬
‫‪0006456642222‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪14‬‬
‫קביעת סדר על נקודות השפה‬
‫‪ ‬כדי לקודד ע”י קוד שרשרת צריך למצוא את נקודות‬
‫השפה ולקבוע את סדרן‪ ,‬כך שיקבעו מסלול העוקף את‬
‫האזורים‪.‬‬
‫‪ ‬איך לעקוף את האזור שמצאנו את פנייתו‪:‬‬
‫– כלל מקומי לעקיפה‪ :‬הליכה בשיטת “יד שמאל‪”:‬‬
‫• שמאלה‪:‬‬
‫• ישר‪:‬‬
‫• ימינה‬
‫• אחורה‪:‬‬
‫עיבוד תמונות ואותות במחשב‬
‫©א’ ברנגולץ‬
‫‪15‬‬
‫קידוד של תמונות עם כמה אזורים‬
‫‪ ‬שיטה פשוטה היא למצוא את האזורים הקשירים‬
‫ולקדד את הגבולות שלהם (כולל הגבולות‬
‫הפנימיים)‬
‫‪ ‬חסרון של השיטה הזאת שכל גבול צריך לקדד‬
‫פעמיים‪.‬‬
‫‪ ‬אלגוריתם חסכוני יותר משתמש בסימון מתוחכם‬
‫של הגבולות במהלך סריקת התמונה בסדר ‪raster‬‬
‫כדי ליצור קוד שרשרת ללא כפילויות( וללא צורך‬
‫בחלוקה מוקדמת לאזורים קשירים‪) Gonzalez-‬‬
‫‪Wintz‬‬
‫‪275-287‬‬
‫במחשב‬
‫תמונות ואותות‬
‫עיבוד‬
‫©א’ ברנגולץ‬
‫‪16‬‬