Presentation is loading. Please wait.

Presentation is loading. Please wait.

עיבוד תמונות ואותות במחשב 1 תרגול מספר 1 עיבוד אותות ותמונות במחשב.

Similar presentations


Presentation on theme: "עיבוד תמונות ואותות במחשב 1 תרגול מספר 1 עיבוד אותות ותמונות במחשב."— Presentation transcript:

1 עיבוד תמונות ואותות במחשב 1 תרגול מספר 1 עיבוד אותות ותמונות במחשב

2 עיבוד תמונות ואותות במחשב 2 חומר חופף בקורסים דומים טורי פוריה (מתמטיקה) טורי פוריה, טרנספורם פוריה אותות ומערכות (חשמל) אותות ומערכות בזמן בדיד ורציף, טרנספורם פוריה הבדיד עיבוד וניתוח תמונות (חשמל) ייצוגי תמונות, אלגוריתמים לשיפור ולניתוח תמונות

3 עיבוד תמונות ואותות במחשב 3 היכן תעבדו ב -Matlab תואר ראשון: בחוות PC תואר שני/שלישי: דרך cs-general ב- \\cs-general-pdc\matlab\bin\win32\matlab.exe ב- Unix לכתוב matlab בחלון terminal

4 עיבוד תמונות ואותות במחשב 4 העבודה הבסיסית ב Matlab - Matlab היא סביבה אינטראקטיבית לחישוב מדעי והנדסי, ויזואליזציה ותכנון אלגוריתמים. איך למצוא מידע נוסף: פקודות help, helpwin, helpdesk, demo מתוך סביבת ה-Matlab באינטרנט: http://www.mathworks.com/support/

5 עיבוד תמונות ואותות במחשב 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(:,[1 3 2 4]) A=B ’ - (transpose) שחלוף מטריצה יצירת מחרוזת: w= ‘ I am a string ’

6 עיבוד תמונות ואותות במחשב 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 עיבוד תמונות ואותות במחשב 7 פונקצית find ותנאים לוגיים תנאים לוגיים==,, (not equal)~=,(not)~ find(a==3) מחזירה אינדקסים ב a לאיברים שמקיימים את התנאי הלוגי. הפונקציה מחזירה אינדקס יחיד במטריצה (שרץ לאורך העמודות) או זוג אינדקסים (y,x) (תלוי במספר פרמטרי החזרה) a=[1 2 3;4 5 6;7 8 9] a = 1 2 3 4 5 6 7 8 9 » z=find(a>7) z = 6 9 » [y,x]=find(a>7) y = 3 x = 2 3

8 עיבוד תמונות ואותות במחשב 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 עיבוד תמונות ואותות במחשב 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 עיבוד תמונות ואותות במחשב 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 עיבוד תמונות ואותות במחשב 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 עיבוד תמונות ואותות במחשב 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 עיבוד תמונות ואותות במחשב 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 עיבוד תמונות ואותות במחשב 14 ספריות החיפוש של Matlab חיפוש הקבצים מבוצע בכל הספריות המופיעות ב- CD וב- path. ניתן לכתוב cd או path על-מנת לראות את תוכנם. ניתן לכתוב: cd d:\mydir על מנת לשנות את ספריית העבודה הנוכחית. ניתן לכתוב: path(path, ’ d:\mydir ’ ) על-מנת להוסיף את d:\mydir ל- path (לא נשמר ביציאה מ- Matlab). ניתן להשתמש גם ב- Path browser.

15 עיבוד תמונות ואותות במחשב 15 שמירת workspace הפקודה whos מציגה את המשתנים שבזיכרון. הפקודה save file_name שומרת משתנים אלה בקובץ file_name.mat וניתן לשחזר משתנים אלה לתוך הזיכרון ע"י load file_name. הפקודה clear a מוחקת את משתנה a מהזכרון. הפקודה clear מוחקת את כל המשתנים שבזיכרון.

16 עיבוד תמונות ואותות במחשב 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 עיבוד תמונות ואותות במחשב 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 עיבוד תמונות ואותות במחשב 18 פקודת for לולאה פשוטה: for n=1:1:4, subplot(2,2,n) plot(a(:,1),a(:,n+1)) title(num2str(n)) end

19 עיבוד תמונות ואותות במחשב 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 עיבוד תמונות ואותות במחשב 20 ייצוג תמונה ב- Matlab 95 102 94 102 95 98 102 99 103 105 110 94 99 94 101 100 98 100 101 101 107 104 97 86 83 97 96 98 104 96 100 102 102 105 91 85 93 89 98 92 95 98 100 102 106 105 99 90 93 96 84 88 93 89 89 98 94 102 99 81 87 86 84 90 91 88 101 104 87 82 90 84 86 87 86 95 102 99 102 90 74 92 101 87 74 77 83 100 92 95 102 100 92 96 110 93 72 71 83 101 87 103 101 105 88 76 94 93 71 69 105 99 105 104 111 101 84 59 78 102 72

21 עיבוד תמונות ואותות במחשב 21 ייצוג תמונה ב- Matlab כמו קודם נצייר את Z=sinc(R)ע“י.mesh Z היא מטריצה המוצגת כאן כמשטח.

22 עיבוד תמונות ואותות במחשב 22 ייצוג תמונה ב- Matlab נתייחס ל-Z (הגובה) בתור תמונה imshow(Z,[]) הבהירות של הפיקסל (x,y) בתמונה מתאימה לגובה Z(x,y).

23 עיבוד תמונות ואותות במחשב 23 ייצוג תמונה ב- Matlab אפשר להגדיל גם את Z ע"י zoom on וסימון ע"י עכבר. אפשר גם בלחצן בחלון הגרפי.

24 עיבוד תמונות ואותות במחשב 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) מתרגם ערכי המטריצה בתמונה הנוכחית לגווני אפור.


Download ppt "עיבוד תמונות ואותות במחשב 1 תרגול מספר 1 עיבוד אותות ותמונות במחשב."

Similar presentations


Ads by Google