- 1. עיבוד תמונה באמצעות חלון עורך MATLAB
- 2. עיבוד תמונה עם ממשק משתמש MATLAB
- יצירת ממשק משתמש גרפי של MATLAB לעיבוד תמונות
- קוד GUI של MATLAB לעיבוד תמונות
- הפעל את קוד ה- GUI של MATLAB לעיבוד תמונות
דמיין שאתה מכוון את המצלמה שלך לאובייקט כלשהו והמצלמה אומרת לך את שם האובייקט הזה, כן, עדשת Google בטלפונים חכמים של Android עושה את אותו הדבר באמצעות עיבוד תמונה. זה נותן למחשב חזון לזהות ולזהות את הדברים ולנקוט בפעולות בהתאם. לעיבוד תמונות יש הרבה יישומים כמו זיהוי וזיהוי פנים, רושם אגודל, מציאות רבודה, OCR, סריקת ברקוד ועוד רבים. יש הרבה תוכנות זמינות לעיבוד תמונה, ביניהן MATLAB היא המתאימה ביותר להתחיל איתה.
MATLAB יכולה לבצע פעולות עיבוד תמונה מקדימות רבות, אך כדי להתחיל בעבודה עם תמונה ב- MATLAB, כאן נסביר כמה פעולות בסיסיות כמו RGB לאפור, לסובב את התמונה, המרה בינארית וכו '. תוכל לבצע תוכניות אוטומטיות להסרת רעשים, תמונה בהירות, סינון באמצעות הפונקציות המוסברות במדריך זה.
לפני שתמשיך הלאה, אם אתה חדש ב- MATLAB, תוכל לבדוק את ההדרכות הקודמות שלנו בנושא MATLAB כדי להמעיט טוב יותר:
- תחילת העבודה עם MATLAB: מבוא מהיר
- ממשק Arduino עם MATLAB - נורית מהבהבת
- בקרת מנוע DC באמצעות MATLAB ו- Arduino
- בקרת מנוע צעד באמצעות MATLAB ו- Arduino
- כיצד לתכנן גרף טמפרטורה בזמן אמת באמצעות MATLAB
ב- MATLAB, כמו תמיד, ישנן שתי דרכים לבצע כל אלגוריתם לעיבוד תמונות, האחת היא על ידי הזנה ישירה של הפקודה בחלון העורך / פקודה והשנייה היא על ידי יצירת ממשק משתמש זהה. כאן אנו נראה לכם את שתי השיטות לביצוע פעולות בסיסיות של עיבוד תמונה ב- MATLAB.
1. עיבוד תמונה באמצעות חלון עורך MATLAB
כעת נכתוב את הקוד לביצוע פעולות בסיסיות של עיבוד תמונה בחלון העורך. כדי להכיר את כל המינוחים הבסיסיים המשמשים ב- MATLAB, לחץ על הקישור. העתק והדבק את הקוד שלהלן בחלון העורך, a = imread ('F: \ circuit digest \ image processing with matlab \ camerman.jpg'); עלילת משנה (2,3,1); imshow (א); b = rgb2gray (a); עלילת משנה (2,3,2); imshow (ב); c = im2bw (א); עלילת משנה (2,3,3); imshow (ג); d = imadjust (b); עלילת משנה (2,3,4); imshow (ד); e = a; e = rgb2gray (e); עלילת משנה (2,3,5); אימיסט (ה); imfinfo ('F: \ circuit digest \ image processing using matlab \ beard-man.jpg') = גודל (a) % colormap ('spring')
במשתנה 'a' אנו מייבאים תמונה באמצעות פקודת imread ('שם קובץ') ואז יוצרים עלילה של '2' שורה ועמודה '3' באמצעות עלילת משנה (שורה, עמודה, מיקום) ומציגים את התמונה המיובאת במיקום ' 1 '. כדי להציג את התמונה אנו משתמשים בפקודה imshow ('שם קובץ') .
להלן מספר פקודות לביצוע עיבוד בסיסי בתמונה שהועלתה:
- במשתנה 'b', אנו ממירים את תמונת ה- RGB לתמונת עוצמת אפור באמצעות הפקודה rgb2gray ('שם קובץ') ומציגים אותה בעלילה במיקום '2'.
- במשתנה 'c', אנו ממירים את התמונה לתמונה בינארית או שאתה יכול לומר בפורמט '0' (שחור) ו- '1' (לבן) באמצעות הפקודה im2bw ('שם קובץ') ולהציג אותה בעלילה ב מיקום '3'.
- במשתנה 'd', אנו מתאימים או ממפים את ערכי עוצמת התמונה בגווני אפור באמצעות הפקודה imadjust ('שם קובץ') ומציגים אותה בעלילה במיקום '4'.
- במשתנה 'e' אנו מתכננים את ההיסטוגרמה של התמונה בגווני האפור באמצעות הפקודה imhist ('שם קובץ') ומציגים אותה בעלילה במיקום '5'. כדי לתכנן את ההיסטוגרמה אתה תמיד צריך להמיר את התמונה בגוני אפור ואז תוכל לראות את ההיסטוגרמה של אותו קובץ גרפי.
- הפקודה Imfinfo ('שם קובץ עם מיקום') משמשת להצגת מידע אודות הקובץ הגרפי.
- הפקודה = size ('שם קובץ') משמשת להצגת מישורי הגודל והצבע של קובץ גרפי מסוים.
- colormap ('קפיץ') משמש לשינוי סוג המפה של הקובץ הגרפי. כאן, בקוד שלי, הגדרתי פקודה זו כהערה, אך תוכל להשתמש בה על ידי הסרת סימן האחוזים. ישנם סוגים רבים של צבע ב- MATLAB כמו סילון, HSV, חם, מגניב, קיץ, סתיו, חורף, אפור, עצם, נחושת, ורוד, קווים ואביב.
כמו אלה, ישנם מספר פקודות ב- MATLAB אשר באמצעותן ניתן לבצע משימות שונות, ניתן לבדוק את פונקציות עיבוד התמונה ב- MATLAB על ידי לחיצה על הקישור.
2. עיבוד תמונה עם ממשק משתמש MATLAB
יצירת ממשק משתמש גרפי של MATLAB לעיבוד תמונות
לבניית GUI (ממשק משתמש גרפי) לעיבוד תמונה, הפעל את GUI על ידי הקלדת הפקודה שלמטה בחלון הפקודה .
להנחות
ייפתח חלון קופץ ואז בחר ממשק משתמש חדש ריק כמוצג בתמונה למטה,
כעת עלינו לבחור מספר לחצני כפתור (כל לחצן יבצע משימה שונה) וציר אחד להצגת תמונה.
כדי לשנות את הגודל או לשנות את צורת הלחצן או הצירים, פשוט לחץ עליו ותוכל לגרור את פינות הכפתור. על ידי לחיצה כפולה על כל אחד מאלה תוכל לשנות את הצבע, המחרוזת, התג ואפשרויות אחרות של אותו כפתור מסוים. לאחר התאמה אישית זה ייראה ככה
אתה יכול להתאים אישית את הכפתורים לפי בחירתך. כעת כשאתה שומר את זה, נוצר קוד בחלון העורך של MATLAB. ערוך את הקוד שנוצר כדי להגדיר את המשימה ללחצני לחיצה שונים. להלן ערכנו את קוד MATLAB.
קוד GUI של MATLAB לעיבוד תמונות
קוד MATLAB מלא לעיבוד תמונה באמצעות MATLAB GUI, ניתן בסוף פרויקט זה. יתר על כן אנו כוללים את קובץ ה- GUI (.fig) וקובץ הקוד (.m) כאן להורדה, באמצעותם תוכלו להתאים אישית את הכפתורים או את גודל הצירים לפי דרישתכם. ערכנו את הקוד שנוצר כמוסבר להלן.
ב "uploadimage" פונקציה, להעתיק ולהדביק את הקוד מתחת להכניס את הקובץ מהמחשב. כאן, הפקודה uigetfile ('סוג סיומת תמונה') משמשת לייבוא תמונה בממשק המשתמש של MATLAB. קרא את הקובץ באמצעות הפקודה imread () ואז הצג אותו עם הפקודה imshow () על axes1 באמצעות axes (handles.axes1) . כעת, עם הפקודה setappdata (), אחסן את המשתנה ב- GUI כך שהמשתנה יהיה נגיש לחלק אחד של ה- GUI לחלק השני של ה- GUI.
a = uigetfile ('. jpg') a = imread (a); גרזנים (handles.axes1); imshow (א); setappdata (0, 'a', a)
כעת, בכל פונקציה תראה פקודה getappdata () המשמשת לאחזור נתונים המאוחסנים באמצעות setappdata () בממשק המשתמש.
כאן נסביר שמונה פונקציות נפוצות בעיבוד תמונה
ש. |
פקודה |
שם כפתור |
משימה לביצוע |
1. |
uigetfile () |
העלאת תמונה |
לחץ לייבוא תמונה מהדיסק |
2. |
rgb2gray () |
RGB לאפור |
לחץ כדי להמיר תמונת RGB בגודל אפור |
3. |
im2bw () |
המרה לתמונה בינארית |
לחץ כדי להמיר את התמונה לבינארית |
4. |
- |
אִתחוּל |
לחץ כדי לאפס את התמונה כמקורית |
5. |
אימיסט () |
היסטוגרמה |
לחץ כדי לראות את ההיסטוגרמה של התמונה |
6. |
השלמה () |
תמונת משלים |
לחץ לבדיקת תמונת המשלים |
7. |
edge (שם קובץ, שיטה) |
איתור קצוות |
לחץ כדי לזהות את הקצוות בתמונה |
8. |
imrotate (שם קובץ, זווית) |
סובב עם כיוון השעון |
לחץ כדי לסובב את התמונה לכיוון השעון |
9. |
imrotate (שם קובץ, זווית) |
סובב נגד כיוון השעון |
לחץ כדי לסובב את התמונה לכיוון נגד כיוון השעון |
1. המרת תמונת RGB לסדר אפור
ב "rgb2gray" פונקציה, להעתיק ולהדביק את הקוד מתחת ל להמיר את התמונה RGB לתוך בגווני אפור באמצעות הפקודה rgb2gray () .
a = getappdata (0, 'a'); אפור = rgb2 אפור (א); גרזנים (handles.axes1); imshow (אפור);
2. להמיר לתמונה בינארית
ב "im2bw" פונקציה, להעתיק ולהדביק את הקוד מתחת ל להמיר את התמונה לתמונה בינארית או שאתה יכול להגיד בפורמט של "0" (שחור) ו "1" (לבן) באמצעות הפקודה im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); גרזנים (handles.axes1); imshow (abw);
3. אפס לתמונה המקורית
ב "איפוס" פונקציה, להעתיק ולהדביק את הקוד מתחת ל לאפס התמונה הערוכה לתוך התמונה המקורית.
a = getappdata (0, 'a'); גרזנים (handles.axes1); imshow (א);
4. היסטוגרמה של תמונת עלילה
ב "היסטוגרמה" פונקציה, להעתיק ולהדביק את הקוד מתחת ל לשרטט את ההיסטוגרמה של התמונה בגווני אפור באמצעות הפקודה imhist ("filename") ולהציג אותו על axes1 . כדי לתכנן את ההיסטוגרמה אתה תמיד צריך להמיר את התמונה בגווני אפור ואז תוכל לראות את ההיסטוגרמה של אותו קובץ גרפי.
a = getappdata (0, 'a'); אהיסט = א; אהיסט = rgb2gray (ahist); גרזנים (handles.axes1); אימיסט (אהיסט);
5. המרה לתמונת משלים
ב "complementimage" פונקציה, להעתיק ולהדביק את הקוד מתחת לראות את התוספת של הגרפיקה מוכנס הקובץ באמצעות הפקודה imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = imcomplement (acomp); גרזנים (handles.axes1); imshow (acomp);
6. איתור קצוות בשיטת Canny
ב "הקצה" פונקציה, להעתיק ולהדביק את הקוד מתחת לזהות ולמצוא קצוות בתמונה בגווני אפור באמצעות הפקודה קצה ("filename", "שיטה") . במקום השיטה אתה יכול לבחור בין שלושה אלה, ערמומי, Prewitt ו מונטאז . אנו משתמשים בשיטת Canny לזיהוי קצה. כמו כן, אינך יכול לזהות את הקצה ישירות מהתמונה המקורית, ראשית עליך להמיר אותה בקנה מידה אפור ואז תוכל לזהות את הקצוות.
a = getappdata (0, 'a'); אגד = a; אגד = rgb2gray (aedge); קצה aedge = (aedge , 'ערמומי')" צירים (handles.axes1); imshow (aedge);
7. סובב תמונה בכיוון השעון
ב "השעון" פונקציה, להעתיק ולהדביק את הקוד מתחת ל לסובב את התמונה בכיוון השעון באמצעות הפקודה imrotate (filename, "זווית")
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 270); גרזנים (handles.axes1); imshow (aclock);
8. סובב תמונה נגד כיוון השעון
ב "נגד כיוון השעון" פונקציה, להעתיק ולהדביק את הקוד מתחת ל לסובב את התמונה נגד כיוון השעון באמצעות הפקודה imrotate (filename, "זווית")
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 90); גרזנים (handles.axes1); imshow (aclock);
הפעל את קוד ה- GUI של MATLAB לעיבוד תמונות
כעת לחץ על כפתור 'הפעל' כדי להפעיל את הקוד הערוך בקובץ.m
MATLAB עשויה לקחת מספר שניות להגיב, אל תלחץ על כפתורי GUI כלשהם עד ש MATLAB מציג הודעה עסוקה בפינה השמאלית התחתונה כמוצג להלן,
כשהכל מוכן, ייבא את התמונה מהמחשב על ידי לחיצה על כפתור 'העלה תמונה'. כעת תוכלו להמיר או לסובב את התמונה על ידי לחיצה על כפתור כלשהו בהתאם. הטבלה שלמטה תראה לכם את המשימה שאנו מבצעים בלחיצה על כל כפתור מסוים:
התוצאה בלחיצה על כל כפתור תתן להלן,
העבודה המלאה של כל כפתור מוצגת בסרטון להלן.
אתה יכול אפילו לבצע רמה מתקדמת של עיבוד תמונה באמצעות ארגז הכלים לעיבוד תמונה שאותו תוכל לרכוש מהאתר הרשמי של MATHWORKS, חלק מפעולות ברמה מראש מפורטות להלן:
- פעולות גיאומטריות
- חסום פעולות
- סינון לינארי ועיצוב פילטר
- טרנספורמציות
- ניתוח ושיפור תמונות
- פעולות תמונה בינאריות