תוכן עניינים:

גילוי MRI של גידול במוח באמצעות Matlab: 6 שלבים
גילוי MRI של גידול במוח באמצעות Matlab: 6 שלבים

וִידֵאוֹ: גילוי MRI של גידול במוח באמצעות Matlab: 6 שלבים

וִידֵאוֹ: גילוי MRI של גידול במוח באמצעות Matlab: 6 שלבים
וִידֵאוֹ: גידולים במוח - סימפטומים, אפשרויות טיפול והחלמה 2024, יולי
Anonim
גילוי MRI של גידול במוח באמצעות Matlab
גילוי MRI של גידול במוח באמצעות Matlab

מאת: Madhumita Kannan, Henry Nguyen, Ashley Urrutia Avila, Mei Jin

קוד MATLAB זה הוא תוכנית לאיתור הגודל, הצורה והמיקום המדויק של הגידול המצוי בסריקות MRI במוח של המטופל. תוכנית זו נועדה במקור לעבוד עם זיהוי גידולים בסריקות MRI במוח, אך היא יכולה לשמש גם לאבחון סרטן בסריקות איברים אחרות.

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

לאחר גילוי הגידול, ההוראות יתארו עוד כיצד לשלב תוכנית זו בממשק משתמש גרפי (GUI). לאורך כל ההוראות הללו יצורף הקוד והקבצים המתאימים שיסייעו להסביר כיצד פועל ניתוח סריקת MRI זה.

כמה דברים שכדאי לדעת, להוריד ולהכין לפני שתמשיך עם ההוראה הזו: 1. הקפד להוריד את הגירסה העדכנית ביותר של MATLAB. אתה יכול להתקין את R2018b כאן:

2. על מנת להריץ תוכנית זו, עליך לקבל גישה לקבצי סריקת מוח של MRI. למרות שתמיד ניתן למצוא חלק מתמונות Google, ניתן לבצע ניתוח יסודי ומדויק מתמונות נכונות של שכבות שונות של סריקות מוח עבור כל מטופל. אתה יכול לגשת לקבצים של 20 חולים שונים עם גליובלסטומה לפני ואחרי טיפול ממאגר מידע זה:

3. המיקוד של תוכנית זו והשיטות השונות המנחות את הפרויקט מתוארות במאמר מחקר זה:

שלב 1: התחל ממשק משתמש גרפי (GUI)

ליזום ממשק משתמש גרפי (GUI)
ליזום ממשק משתמש גרפי (GUI)
ליזום ממשק משתמש גרפי (GUI)
ליזום ממשק משתמש גרפי (GUI)

השלב הראשון יהיה ליצור וליזום את ממשק המשתמש הגרפי, GUI. ניתן לעשות זאת על ידי הקלדת מדריך לחלון הפקודה, הקשה על enter ויצירת GUI חדש. לאחר השלמת שלב זה תוכל להתחיל ליצור פונקציות כגון צירים, טקסט סטטי, עריכת טקסט ולחצני לחיצה שיוצגו לאחר הפעלת התוכנית והמשתמש יכול לקיים אינטראקציה איתם. ניתן לערוך ולתפעל פונקציות אלה באמצעות מפקח הנכסים, אולם התכונה החשובה ביותר שיש לשנות בעת יצירת פונקציות אלה היא שם התגית. חשוב לשנות את שם התגית של כל פונקציה המיושמת מכיוון שהיא תאפשר לנו ליצור פונקציית התקשרות ניתנת להבחנה. ברגע שאתה מרוצה מהפריסה של ה- GUI שלך תוכל להמשיך לטעינת קבצי DICOM שיוצגו בתוך ה- GUI.

שלב 2: טעינה וקריאה של תמונות MRI ב- MATLAB

טעינה וקריאה של תמונות MRI ב- MATLAB
טעינה וקריאה של תמונות MRI ב- MATLAB
טעינה וקריאה של תמונות MRI ב- MATLAB
טעינה וקריאה של תמונות MRI ב- MATLAB

על מנת לטעון את קבצי DICOM יהיה עליך לאתחל נכון את פונקציית השיבה החזרה שתתבצע בעת לחיצה על הלחצן "טען תמונת MRI". לאחר השלמת פעולה זו, עליך ליצור משתנה גלובלי שיציג את התמונה על ציר הידיות במקום בו תרצה שתמונת MRI המקורית תוצג. תמונות סריקת MRI שהורדו ממאגר הנתונים הן כולן קבצים בפורמט DICOM שצריך לטעון אותם בספריית MATLAB שלך. אתר את הקובץ באמצעות imgetfile על מנת לטעון אותם לתוכנית. התמונות נקראות באמצעות הפונקציה 'dicomread' המובנית ב- MATLAB, והתמונה הגולמית הראשונה של כל קובץ מוטמעת בצירים ה- GUI השמאליים באמצעות imshow.

הפונקציה 'dicominfo' המובנית ב- MATLAB שימושית במיוחד בטיפול בכל המידע של כל קובץ MRI dicom. השתמשנו בפונקציה זו כדי לחלץ את כל המידע התיאורי של המטופלים, כגון מין, גיל, משקל וגובה. פונקציה זו גם מספקת לך את סדר הערימה אשר שימושי ליישום התוכנית בתוך ממשק המשתמש הגרפי. יצרנו משתנים לכל אחד מהמידע התיאורי של המטופלים שישמשו את ה- GUI בעת לחיצה על כפתור הזיהוי.

שלב 3: סינון תמונות

סינון תמונות
סינון תמונות
סינון תמונות
סינון תמונות

לאחר טעינת וקריאת קובץ DICOM של התמונה הגולמית, יש להמיר את התמונה מגווני אפור לצורה בינארית המורכבת מפיקסלים בשחור ולבן בלבד השתמשנו בפונקציה 'imbinarize' ליצירת תמונה בינארית מהתמונה הגולמית על ידי שליטה בהיבטים של סף אדפטיבי בערך רגישות של 0.59. גורם הרגישות של סף ברירת המחדל, 0.5 היה נמוך ולא הצליח לזהות את הכתמים הבהירים והכתמים מהתמונה, אז הגדלנו אותו ל -0.59.

לאחר מכן מעובדת התמונה הבינארית באמצעות מסנן חציוני באמצעות הפונקציה 'medfilt2' מכיוון שהתמונה הבינארית היא דו ממדית. הגדרנו כל פיקסל פלט שיכיל את הערך החציוני בשכונה 5 x 5 סביב הפיקסל המתאים בתמונה הבינארית הקלטת. זה מפחית את הרעש ומשמר את הקצוות בריבוע בגודל 5 x 5 סביב כל פיקסל. לאחר מכן, אנו מיישמים חלון הזזה באמצעות 'סטרל', כדי ליצור אלמנט בנייה שטוח בצורת דיסק עם רדיוס שכונתי של 2 כדי לזהות כל פיקסל מרכזי, בכל שכונת דיסקים. השתמשנו ברכיב בניית דיסקים מכיוון שאנו מנתחים כל נקודה מעגלית ואת הפיקסלים בתוך כל נקודה, כך שרכיב בצורת דיסק שימושי יותר.

לאחר סינון התמונה, ניתן לנקות אותה באמצעות הפונקציה 'סגירה' כדי להסיר את הנקודות השחורות בין הפיקסלים הלבנים המסוננים בתמונה, ולסגור את כל הפערים סביבה. לאחר מכן ניתן לשרטט את התמונה המעובדת לחלוטין בחלקה המשנה השנייה של הדמות שהוקצתה מראש, ומאפשרת השוואה בין התמונה הגולמית והמסוננת.

שלב 4: בידוד גידול באמצעות מסכה אליפטית

בידוד גידול באמצעות מסכה אליפטית
בידוד גידול באמצעות מסכה אליפטית
בידוד גידול באמצעות מסכה אליפטית
בידוד גידול באמצעות מסכה אליפטית
בידוד גידול באמצעות מסכה אליפטית
בידוד גידול באמצעות מסכה אליפטית

לאחר מכן ניתן לבודד את כתמי האור של הגידול מהתמונה הראשית המסוננת באמצעות מסכה אליפטית שנוצרה מראש. כדי ליצור מסכה זו, עליך לדעת את גודל תמונת סריקת MRI המקורית, הגולמית, ולהשתמש באורך השורה והעמודה שלה, כקואורדינטות x ו- y בהתאמה, להקצות את קואורדינטות המרכז לאליפטי. הצבנו את ציר ה- y כציר מרכזי עם רדיוס של 50 יחידות מהמרכז, ואת הציר המשני עם רדיוס של 40 יחידות מהמרכז.

השתמשנו בפונקציית MATLAB 'meshgrid' ליצירת מטוס קרטזי עם קואורדינטות רשת דו-ממדיות המבוססות על הקואורדינטות הכלולות בווקטורים מ -1 עד אורך ציר ה- x, ומ- 1 לאורך ציר ה- y של התמונה. Col היא מטריצה שבה כל שורה היא עותק של ציר ה- x, ושורה היא מטריצה שבה כל עמודה היא העתק של ציר ה- y. לרשת הקרטזית המיוצגת על ידי הקואורדינטות Col ו- Row יש שורות באורך (1: Y_Size) ואורך (1: X_Size). השתמש במדדי Col ו- Row שנוצרו על ידי הרשת הקרטזית כדי לקבוע את משוואת האליפסה בהתאם לרדיוס שנקבע מראש ולקואורדינטות המרכז. כעת ניתן למלא את המתאר האליפטי בפיקסלים הלבנים שנמצאו מכתמי גידול.

בעזרת המסכה האליפטית שנוצרה מראש נוכל לחתוך את הגידול הספציפי שברצונך לנתח מהתמונה המסוננת. המסכה האליפטית מזהה אילו נקודות מתאימות לוגית בתוך קווי המתאר של האליפסה ומקבלת זאת כנקודה בתמונה המסוננת כדי להתקבל כגידול. הפונקציה 'bwareafilt' מסננת לאחר מכן את כל האובייקטים האחרים מחוץ לגידול שזוהה מהתמונה. השתמשנו בחלון ספציפי של 500 על 4000 אמפירי המבוסס על ממדי כל התמונות. לאחר מכן החלנו חלון הזזה נוסף עם 'סטרל' כאלמנט מבנה בצורת דיסק שטוח ברדיוס שכונתי גדול יותר של 6, כדי לסגור את הפערים בין כל פיקסל לבן מרכזי בתוך הגידול שהתגלה. נקודת הגידול שזוהתה מנקה עוד יותר באמצעות 'סגירה' כדי לחסל עוד יותר את הפיקסלים השחורים ולמלא את כל החורים עם 'מילוי'. לאחר מכן ניתן להציג את הגידול המעובד בחלקה המשנה השלישית בחלקה המוקצית מראש על מנת לספק השוואה בין הגידול המבודד לבין התמונות המקוריות והמסוננות של סריקת MRI.

שלב 5: מתאר גידולים

מתאר גידולים
מתאר גידולים
מתאר גידולים
מתאר גידולים

כעת, כשהגידול מבודד עם המסכה, ניתן לתאר אותו ולהציג אותו על התמונה המקורית, כדי להציג את מיקומו המדויק. לשם כך השתמשנו בפונקציה 'bwboundaries' כדי לאתר את הגידול שנתגלה בעבר עם מתאר. צייננו את המתאר כך שלא יכלול את החורים בתוך אובייקט הגידול כפי שהוא מתואר. ניתן לשרטט זאת על התמונה המקורית, הגולמית, באמצעות לולאת 'עבור' המתווה את המתאר סביב הגידול באמצעות מדדי הקו ברוחב קו של 1.5 פיקסלים. לאחר מכן מתווה מתווה זה על התמונה הגולמית, המציג את הגודל והמיקום המדויק של הגידול, ביחס לסריקת MRI המקורית.

שלב 6: ניתוח המאפיינים הפיזיים של גידולים

ניתוח המאפיינים הפיזיים של גידולים
ניתוח המאפיינים הפיזיים של גידולים
ניתוח המאפיינים הפיזיים של גידולים
ניתוח המאפיינים הפיזיים של גידולים

הנקודה המבודדת והמתוארת יכולה לספק לנו מידע שימושי לגבי גודל, שטח ומיקומו של הגידול. השתמשנו בפונקציה 'regionprops' כדי לזהות את המאפיינים של הגידול הנוגעים לאזור, להיקף, צנטרואידים ולערך אינדקס הפיקסלים. ערך אינדקס הפיקסלים הזה נותן לנו את יחידות העולם האמיתי עבור כל פיקסל של כל תמונה, ייחודי לכל סריקה. לאחר מכן ניתן להמיר נכסים אלה ליחידות של מילימטרים מהעולם האמיתי. המידע האמפירי שהתוכנית מספקת לנו הוא ייחודי לכל סריקת MRI והוא שימושי ביותר בקביעת גודל, מיקום וסוג הגידול, שהמשתמשים יכולים לנתח ולשלב בממשק המשתמש הגרפי.

מוּמלָץ: