Document 7897830

Report
Edge Detection Using MPI
‫אמיר ושקובר‬
‫אלכס הוניג‬
‫כללי‬
‫‪‬‬
‫מציאת גבולות בתוך תמונה ע"י שימוש באלגוריתם‬
‫למציאת שינוי גוון חדים בתמונות שהומרו לגווני‬
‫אפור‬
‫‪Edge Detection‬‬
‫‪ ‬מהם גבולות בתמונה?‬
‫‪ ‬מדוע לזהות גבולות?‬
‫‪ ‬אלגוריתם ‪Sobel‬‬
‫דוגמנית‬
‫אלגוריתם ‪Sobel‬‬
‫תאוריה‬
‫‪ ‬ביצוע גרדיאנט מרחבי המדגיש שינויים‬
‫בתמונה‬
‫‪ ‬שינויים חדים בגרדיאנט ‪ ‬גבול בתמונה‬
Sobel ‫אלגוריתם‬
X0
X1
X2
X3
X4
X5
X6
X7
X8
‫אלגוריתם ‪ - Sobel‬המשך‬
‫מסכות ‪Sobel‬‬
‫‪-1‬‬
‫‪-2‬‬
‫‪-1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪2‬‬
‫‪1‬‬
‫‪f‬‬
‫‪Gy ‬‬
‫‪‬‬
‫‪y‬‬
‫‪1‬‬
‫‪0‬‬
‫‪2‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫גודל ווקטור הגרדיאנט יחושב ע"י‪:‬‬
‫‪G  Gx 2  Gy 2‬‬
‫‪-1‬‬
‫‪f‬‬
‫‪Gx ‬‬
‫‪ -2‬‬
‫‪x‬‬
‫‪-1‬‬
‫מיקבול האלגוריתם באמצעות ‪MPI‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫חלוקת התמונה לרצועות כמספר המעבדים‬
‫כל מעבד מזהה גבולות ברצועה הרלוונטית‬
‫טיפול זהיר בתפר בין רצועות סמוכות‬
‫שליחת הרצועות המעובדות ל‪Master -‬‬
‫טיפול בקצוות רצועה‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫כל רצועה ‪ i‬זקוקה לשורת פיקסלים‬
‫נוספת מרצועות סמוכות‬
‫ה ‪ Master‬שולח בנוסף לרצועה ‪ i‬גם‬
‫את שורות הפיקסלים הדרושות‬
‫התחום מחוץ לתמונה יחושב כערך ‪0‬‬
‫‪i-1‬‬
‫‪i‬‬
‫‪i+1‬‬
Master/Worker Model
Master
‫חלוקת התמונה‬
Worker
Worker
‫איסוף רצועה מעובדת‬
Master
Worker
Pseudo Code Implementation
N = num_of_processors;
If (Master){
read (image);
split image to N stripes;
loop N-1
send_data(stripe);
receive_data(worker);
end
write (image);
}
if (Worker){
receive (stripe);
G = Sobel (stripe);
if (G > Threshold)
edge=true;
send (stripe);
}
The End

similar documents