31-10-2005, 03:50
|
|
|
|
חבר מתאריך: 20.06.03
הודעות: 5,616
|
|
תחום עיבוד תמונה
הוא תחום הדורש מעט יותר מתמטיקה ממה שלומדים בתיכון.
אבל בהנחה שמדובר במשהו פשוט, המסוגל למשל למצא כדור כהה על רקע בהיר או משהו בסגנון,
אתה זקוק למבנה כלשהו שניתן לקרא ממנו את ערכי הצבע של כל פיקסל ופיקסל בתמונה.
אני מזמן לא נגעתי (וגם כנראה לא אגע אי פעם) ב-VB על מנת לומר לך איזה מניפולציות ובאיזו רמה
ניתן לבצע על אובייקט מסוג תמונה.
אבל אם תעבוד ב ++C, לסביבת הפיתוח ++Visual C עבור win32 וגם בגרסת MFC, יש אובייקטים
טובים לטיפול בתמונות, עליהם ניתן לבצע מניפולציות מתמטיות, לקרא ולכתוב ערך לכל פיקסל ועוד..
בפורום הקודם, העלתי פעם מבוא לעיבוד תמונה, אך הוא היה מבוסס על מתמטיקה אקדמית (אלגברה
לינארית ועוד...).
דוגמה פשוטה למצב עקיבה:
לפניך מטריצה המייצגת את הפיקסלים של התמונה שאתה מקבל ממצלמת הרובוט.
כל נקודה היא פיקסל, אותו אתה יכול לקרא - כלומר לדעת את ערך הצבע באותה נקודה.
אתה מגדיר את צבע הרקע כלבן, כלומר כל פיקסל שטווח הצבע שלו הוא בין:
(לבן)
לבין:
(אפור בהיר יחסית)
אתה מתעלם ממנו.
אתה למעשה מחפש במטריצה זו(מערך דו מימדי), פיקסלים שערכיהם נמצאים בטווח הקרוב לשחור
או כל מה ששונה מהרקע.
לאחר שמצאת קבוצה כזו, אתה מבצע מיצוע של המיקום שלהם (מחשב ממוצע) יחסית למרכז המטריצה.
ברגע שאתה יודע את המרחק והכיוון ממרכז המטריצה, הפעלת מנועי הרובוט (או מצלמת הרובוט)
בדיוק בכיוון ההפוך, יביאו את המטרה (או הכדור הכהה) למרכז המטריצה, כשהחישוב חוזר על עצמו
כל הזמן. זוהי דוגמה לביצוע עקיבה בעזרת מצלמה.
זה הסבר בסיסי למדי, אתה מן הסתם תצטרך קצת רגע בבקרה ומשובים (על מנת למנוע תנועה הרמונית
ממצלמת הרובוט), וכן קצת מתמטיקה שהיא מעבר לתחום הלימודים של תיכון, אבל חיפוש ברשת
ומעט מחשבה יכולים מאוד לעזור לך.
אם תפרט יותר על מטרות ה"רובוט" שאתה בונה, ואיזו סוג "תמונה" אתה אמור לנתח ולאיזו מטרה,
אולי נוכל לעזור יותר.
בכל מקרה, שוב - אני ממליץ לבצע ניתוח של תמונה בשפת תכנות כמו C או ++C.
נערך לאחרונה ע"י fat fish בתאריך 31-10-2005 בשעה 04:07.
|