עיבוד תמונות ואותות במחשב 1 תרגול מספר 1 עיבוד אותות ותמונות במחשב
עיבוד תמונות ואותות במחשב 2 חומר חופף בקורסים דומים טורי פוריה (מתמטיקה) טורי פוריה, טרנספורם פוריה אותות ומערכות (חשמל) אותות ומערכות בזמן בדיד ורציף, טרנספורם פוריה הבדיד עיבוד וניתוח תמונות (חשמל) ייצוגי תמונות, אלגוריתמים לשיפור ולניתוח תמונות
עיבוד תמונות ואותות במחשב 3 היכן תעבדו ב -Matlab תואר ראשון: בחוות PC תואר שני/שלישי: דרך cs-general ב- \\cs-general-pdc\matlab\bin\win32\matlab.exe ב- Unix לכתוב matlab בחלון terminal
עיבוד תמונות ואותות במחשב 4 העבודה הבסיסית ב Matlab - Matlab היא סביבה אינטראקטיבית לחישוב מדעי והנדסי, ויזואליזציה ותכנון אלגוריתמים. איך למצוא מידע נוסף: פקודות help, helpwin, helpdesk, demo מתוך סביבת ה-Matlab באינטרנט:
עיבוד תמונות ואותות במחשב 5 מטריצות ב- Matlab מטריצות מלבניות הן מבנה הנתונים העיקרי. כדי לבנות מטריצה פשוט כותבים: a=[0.2,7,11,5] - וקטור-שורה (אופרטור, שרשור לאורך שורה) x=5:2:11 - וקטור ]5,7,9,11[=x (אופרטורa:b:c ) m=[2.1;66;11;9] עמודה וקטור A=[3 4 5; 4 7 9; 2 6 7] - 3X3 מטריצה הרכבת מטריצה מתת מטריצותB=[a b;c d] העתקת תת מטריצה A=B(3:5, 4:7) הוצאת עמודות מסוימות מהמטריצה B A=B(:,[ ]) A=B ’ - (transpose) שחלוף מטריצה יצירת מחרוזת: w= ‘ I am a string ’
עיבוד תמונות ואותות במחשב 6 פעולות עם מטריצות יצירת מטריצות ייחודיות: (zeros(3,5), rand(5,1) ones(6,2),eye (6,2 פקודות על מטריצות: +,-,*(כפל מטריצי),/(חילוק מטריצי),^ דוגמאות:A^2, a+b, A*x-y פקודות על איברים מתאימים במטריצות element wise : a./b, a.^2, a.*b הפעלת פונקציות:(sqrt(x), sin(y), exp(a+b), result=isempty(a [v,d] = eig(x) S=sum(A) %S is a row vector of the columns sums of A S=sum(sum(A)) %sum of matrix A [NumRows, NumColumns]=size(M)
עיבוד תמונות ואותות במחשב 7 פונקצית find ותנאים לוגיים תנאים לוגיים==,, (not equal)~=,(not)~ find(a==3) מחזירה אינדקסים ב a לאיברים שמקיימים את התנאי הלוגי. הפונקציה מחזירה אינדקס יחיד במטריצה (שרץ לאורך העמודות) או זוג אינדקסים (y,x) (תלוי במספר פרמטרי החזרה) a=[1 2 3;4 5 6;7 8 9] a = » z=find(a>7) z = 6 9 » [y,x]=find(a>7) y = 3 x = 2 3
עיבוד תמונות ואותות במחשב 8 Visualization and Graphics plot(x,y), plot(x,sin(x)) %plot 1-D function figure, figure(k)%open a new figure hold on, hold off mesh(x_ax,y_ax,z_mat)%view surface contour(z_mat) %view z as top. map subplot(3,1,2) %several plots in figure axis([xmin xmax ymin ymax]) title( ‘ figure title ’ ) %add title to figure
עיבוד תמונות ואותות במחשב 9 עזרה ב- matlab » Help eig EIG Eigenvalues and eigenvectors. E = EIG(X) is a vector containing the eigenvalues of a square matrix X. [V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that X*V = V*D. » lookfor differentiation NUDERST Selects the step size for numerical differentiation DIFF Alternative entry to the symbolic differentiation function. In unix: !ls or !mkdir כדי לקבל עזרה על פונקציה: help func_name כדי לחפש פונקציה ששמה לא ידוע lookfor keyword כדי לקבל כלי עזרה אינטראקטיבי helpwin/helpdesk איזה משתנים קיימים בשדה העבודה whos פקודות למ"ה : !command
עיבוד תמונות ואותות במחשב 10 Sinc דו-ממדי (דוגמה) a=-9:0.2:9; [x,y] = meshgrid(a); R = sqrt(x.^2+y.^2)+eps; Z = sin(R)./R; mesh(a,a,Z) או mesh(x,y,Z) title( ‘ Sinc(x^2+y^2) ’ )
עיבוד תמונות ואותות במחשב 11 פונקציות ב- Matlab function [c,d,e]= pyt(a,b) % returns the hypotenuse in a right angle % triangle according to Pythagoras theorem. % c is the hypotenuse, % d and e are the two sharp angles c=sqrt(a.^2+b.^2); d=atan(b/a); e=pi/2-d; נייצר קובץ pyt.m המכיל : נייצר קובץ pyt.m המכיל :
עיבוד תמונות ואותות במחשב 12 פונקציות ב- Matlab comm=input( ‘ Enter a command name ’ ); op=input( ‘ Enter the argument ’ ); feval(comm,op); %executes comm with op Or eval([comm ‘ ( ‘’‘ op ‘’’ ); ’ ]); %if op is a string eval([comm ‘ ( ‘ num2str(op) ‘ ); ’ ]);%if op is a number מכיוון ש Matlab הוא interpreter ניתן לתת לו לבצע פקודות דינאמיות ( שלא ידועות בזמן קומפילציה ): שיטה זו שימושית כשכותבים script ( אוסף פקודות השמור כ - filename.m ומתבצע בסביבה הגלובלית כאשר רושמים filename ) ובפונקציות ( כמו script אבל מקבלת ומחזירה פרמטרים ועובדת עם משתנים לוקליים בסביבה פנימית ).
עיבוד תמונות ואותות במחשב 13 M-files בד”כ לא נוח לעבוד בצורה אינטראקטיבית בלבד מאבדים את כל מה שנעשה בין session ל-session. ניתן לעבוד בעורך (editor) המועדף או בעורך של Matlab ע ” י edit. כדי להפעיל my_m_file.m script פשוט כותבים בMatlab את השם my_m_file וזה מריץ את הפקודות סדרתית בסביבה הגלובלית. פקודות שימושיות: what מחזירה את השמות של קבצי matlab בcurrent directory. which fun מחזיר את מקור הקובץ עם path מלא. s=sprintf( ‘ Mydata%d ’,I) - זהה לאותה פקודה ב- C. diary( ‘ diary_file ’ ), diary off מקליט את כל ה-text שבחלון ה-.cmd
עיבוד תמונות ואותות במחשב 14 ספריות החיפוש של Matlab חיפוש הקבצים מבוצע בכל הספריות המופיעות ב- CD וב- path. ניתן לכתוב cd או path על-מנת לראות את תוכנם. ניתן לכתוב: cd d:\mydir על מנת לשנות את ספריית העבודה הנוכחית. ניתן לכתוב: path(path, ’ d:\mydir ’ ) על-מנת להוסיף את d:\mydir ל- path (לא נשמר ביציאה מ- Matlab). ניתן להשתמש גם ב- Path browser.
עיבוד תמונות ואותות במחשב 15 שמירת workspace הפקודה whos מציגה את המשתנים שבזיכרון. הפקודה save file_name שומרת משתנים אלה בקובץ file_name.mat וניתן לשחזר משתנים אלה לתוך הזיכרון ע"י load file_name. הפקודה clear a מוחקת את משתנה a מהזכרון. הפקודה clear מוחקת את כל המשתנים שבזיכרון.
עיבוד תמונות ואותות במחשב 16 בקרת הזרימה פקודת if: if (A > B), statement; elseif (A< B), statement; elseif ~A, statement; else, statement; end if i==1, statement; end if res(n,2) ~= 0, statement; else, statement; end
עיבוד תמונות ואותות במחשב 17 פקודת switch switch (rem(n,3) ==0) & (rem(n,2)==0) case 0 disp('n is not dividable by 6') case 1 disp('n is dividable by 6') otherwise error('This is impossible.') end אין גלישה כמו ב C
עיבוד תמונות ואותות במחשב 18 פקודת for לולאה פשוטה: for n=1:1:4, subplot(2,2,n) plot(a(:,1),a(:,n+1)) title(num2str(n)) end
עיבוד תמונות ואותות במחשב 19 פקודת while a = 4; fa = sin(a); b = 2; fb = sin(b); while a - b > 5 * eps, x = (a+b)/2; fx = sin(x); if sign(fx) == sign(fa), a = x; fa=fx; break; else b = x; fb = fx; end
עיבוד תמונות ואותות במחשב 20 ייצוג תמונה ב- Matlab
עיבוד תמונות ואותות במחשב 21 ייצוג תמונה ב- Matlab כמו קודם נצייר את Z=sinc(R)ע“י.mesh Z היא מטריצה המוצגת כאן כמשטח.
עיבוד תמונות ואותות במחשב 22 ייצוג תמונה ב- Matlab נתייחס ל-Z (הגובה) בתור תמונה imshow(Z,[]) הבהירות של הפיקסל (x,y) בתמונה מתאימה לגובה Z(x,y).
עיבוד תמונות ואותות במחשב 23 ייצוג תמונה ב- Matlab אפשר להגדיל גם את Z ע"י zoom on וסימון ע"י עכבר. אפשר גם בלחצן בחלון הגרפי.
עיבוד תמונות ואותות במחשב 24 פקודות נוספות print -djpeg filename – הדפסת figure לקובץ filename.jpeg im2double(img), im2uint8(img) – מעביר תמונה בין טיפוס uint8 (8 ביט) ו.double - אי אפשר לבצע את כל הפעולות אריתמטיות על uint8. [X,map]=imread( ‘ file ’ ) - לקרוא תמונה מקובץ לתוך משתנה X. imwrite(X,map, ’ file ’,fmt) - רשום התמונה שב X לקובץ file בפורמט fmt. imshow(img,n) - להציג תמונה ב n רמות אפור. a=imcrop(img)- לחתוך תת תמונה ע“י סימון עם העכבר. imresize(img,[10 10], ’ method_name ’ ) לשנות גודל תמונה לגודל 10X10. colormap(gray) מתרגם ערכי המטריצה בתמונה הנוכחית לגווני אפור.