תוכן עניינים:
- שלב 1: מצא סריקות MRI ו- MRA של מוח רגיל ומוח מושפע מויאמויה
- שלב 2: טען תמונות ב- MATLAB והקצה תמונות למשתנה להצגת תמונות
- שלב 3: שפר מבנים מוארכים בתמונת עוצמה בעזרת סינון רב -קוני
- שלב 4: הפעל מסנן חציוני דו -ממדי
- שלב 5: מסכה את התמונה
- שלב 6: בחר את סריקות ה- MRA לבדיקה סטטיסטית
- שלב 7: חשב את שטח כלי הדם לקראת בדיקה סטטיסטית
- שלב 8: הפעל מבחן T דוגמאות עצמאיות
וִידֵאוֹ: עיבוד תמונה Moyamoya: 8 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
Moyamoya, "נפיחות עשן", היא מחלה נדירה הנגרמת על ידי חסימת עורקים בגרעיני הבסיס, שהם אזור בבסיס המוח. המחלה היא מחלה מתקדמת של כלי הדם המוחיים הפוגעת בעיקר בילדים. הסימפטומים של moyamoya כוללים שבץ ראשוני, שבץ מיני קבוע, חולשת שרירים, שיתוק או התקפים כתוצאה מהצרה הדרגתית של העורקים. ללא טיפול, moyamoya יגרום לבעיות בדיבור, פגיעה חושית ותודעה פגומה. בפרויקט שלנו נשתמש ב- MATLAB על מנת לעבד מראש תמונת MRI או MRA באמצעות מסננים שונים להפחתת רעש בתוך התמונה לאיתור האזור הפגוע. בנוסף, נשתמש בשיפור תכונה לאיתור האזורים המושפעים בצורה מדויקת יותר. יתר על כן, לאחר מכן נבצע בדיקת t דוגמאות עצמאית כדי לקבוע אם יש הבדל משמעותי בין כמות כלי הדם במוח רגיל בהשוואה למוח המושפע מויאמויה.
שלב 1: מצא סריקות MRI ו- MRA של מוח רגיל ומוח מושפע מויאמויה
תמונות אלו הן הסריקות בהן השתמשנו לפרויקט שמצאנו באינטרנט. שתי התמונות עם כלי הדם הממוקמות באמצע הן סריקות MRA, בעוד ששתי התמונות האחרות הן סריקות MRI.
הקישורים הבאים הם המקום בו נמצאות התמונות האלה:
static.cambridge.org/resource/id/urn:cambr…
static.cambridge.org/resource/id/urn:cambr…
שלב 2: טען תמונות ב- MATLAB והקצה תמונות למשתנה להצגת תמונות
כדי להתחיל את התהליך, התחל על ידי ניקוי חלון הפקודה, סגור את כל הנתונים והגרפים האפשריים שכבר עשויים להיות פתוחים ומשתנים ברורים שכבר הוקצו בסביבת העבודה שלך.
לאחר מכן, צור לולאה של 1 עד 2 באמצעות הפקודה i = [1: 2]
לאחר מכן, טען את תמונות MRA באמצעות הפקודה imread (sprintf ('שם קובץ%.filetype', i)) כדי לקרוא את התמונות מהקבצים שצוינו בשם הקובץ ואחריו המספר המשמש ללולאה באמצעות sprintf לטעינת אצווה והקצאה זה למשתנה.
לאחר מכן כדי להציג את התמונה באיור, השתמש בפקודה imshow (I).
כדי להקצות מפת צבע אפורה, השתמש בפקודה colormap (אפור).
כדי לחסל לחלוטין את הצבע ולהמיר את מטריצת התלת מימד לתמונות לדו מימד, השתמש בפקודה rgb2gray (I) והקצה אותו למשתנה נפרד.
לאחר מכן טען את תמונות ה- MRI באמצעות הפקודה שהוזכרה בעבר או imread (sprintf ('שם קובץ%.פילטיפ', i)) והקצה אותו למשתנה חדש
חזור על הפקודה rgb2gray עם המשתנה החדש המשמש לתמונות ה- MRI.
במידת הצורך, תוכל לשנות את גודל התמונה באמצעות הפקודה imresize (A, scale) ולהקצות למשתנה נפרד.
שלב 3: שפר מבנים מוארכים בתמונת עוצמה בעזרת סינון רב -קוני
באמצעות משתנה חדש, השתמש בפקודה fibermetric (A) כדי לשפר את המבנים הצינוריים בתמונות
עם המשתנה הקודם, השתמש בפקודה histeq (B) כדי לשפר את השוואות ההיסטוגרמה על ידי הפיכת עוצמת התמונות והקצאתו למשתנה חדש.
הצג את ההיסטוגרמה באמצעות הפקודה imhist (B)
צור משתנה חדש ליצירת סף למסנן. במקרה זה הקצה את המשתנה הקודם> 0.875, וסנן את עוצמת הפיקסלים מתחת לערך 0.875
לאחר מכן, צור דמות חדשה והשתמש בפקודה imshow (A) כדי להציג את התמונה המסוננת החדשה.
שלב 4: הפעל מסנן חציוני דו -ממדי
באמצעות הפקודה medfilt2 (A, [m n]), הפעל מסנן חציוני דו ממדי, כאשר כל פיקסל פלט מכיל את הערך החציוני בגבול mxn סביב הפיקסל המתאים בתמונת הקלט.
צור דמות חדשה והשתמש ב- imshow (A) כדי להציג את התמונה המסוננת החציונית.
שלב 5: מסכה את התמונה
בעזרת התמונה החציונית המסוננת, השתמש בפקודה [labeledImage, numberOfBlots] = bwlabel (A) כדי לספור את מספר הכתמים הלבנים בתמונה
לאחר מכן, השתמש במצבי הפונקציה region props = regionprops (labeledImage, 'Area') כדי לחשב את השטחים של כל כתם או כלי דם.
הקצה את כל האזורים למשתנה אחד
לאחר מכן, בעזרת משתנה אחר, ספור את מספר הכתמים העולים על 50 פיקסלים
לאחר מכן, מיין כל כתמים הנמצאים מתחת ל -50 פיקסלים בסדר יורד באמצעות הפקודה [sortedAreas, sortedIndicies] = sort (אזורים, 'יורד')
לאחר מכן, באמצעות משתנה אחר, השתמש בפקודה ismember (labeledImage, sortedIndicies (1: numberToExtract)) כדי להחזיר מערך עם אלמנטים של labeledImage נמצאים ב- sortedIndicies מהמספר 1 למספר כלי הדם כדי להחזיר 1 לוגי (נכון) או 0 לוגי (שקר).
עם המשתנה בשלב הקודם, מצא את הנקודות הנכונות (ערכים> 0) וצור מערך לוגי ליצירת תמונה בינארית והקצאתו למשתנה חדש.
צור דמות חדשה והשתמש ב- imshow (A) בתמונה הבינארית החדשה.
לאחר מכן, הפוך את התמונה באמצעות מימוש הפקודה (A) והקצה אותה למשתנה אחר.
ליצירת תמונה עם מסכה, השתמש במשתנה חדש עם הפקודה resizeimage.*Uint8 (invertedimage)
צור דמות חדשה והשתמש ב- imshow (A) להצגת תמונה רעולי פנים.
כדי לסיים את כל הקוד, הקפד להשתמש בפקודה 'סיום' כדי לסיים את הלולאה כולה
שלב 6: בחר את סריקות ה- MRA לבדיקה סטטיסטית
כדי להתכונן לבדיקות סטטיסטיות, בחר את סריקות ה- MRA שישמשו לבדיקת t הדגימות הבלתי תלויות. מכיוון ששתי הדגימות שלנו יהיו מוח מושפע מויאומה, ומוח רגיל, בחר כמות סבירה של סריקות MRA של כל קבוצה.
שלב 7: חשב את שטח כלי הדם לקראת בדיקה סטטיסטית
הבדיקה הסטטיסטית תתמקד באורך או בכמות כלי הדם המוצגים בסריקות ה- MRA. לפיכך, עלינו לחשב את שטח כלי הדם לפני ההשוואה.
התחל על ידי סינון ה- MRA של המוח הרגיל וחישוב כמות כלי הדם. לשם כך, הפעל לולאת for. מכיוון שיש שלוש תמונות, המצב יהיה i = [1: 3].
פתח את התמונה באמצעות הפקודה imread והקצה אותה למשתנה.
לאחר מכן, צור הצהרה if/else עם הפקודה if, else. עבור המשפט if, השתמש בגודל הפקודה (A, 3) == 3, כאשר A הוא המשתנה המשמש לפתיחה לתמונה, כדי ליצור משפט if כאשר הממד השלישי של המערך הוא 3. לאחר מכן המר את התמונה ל- 2D והיפטר מהצבע באמצעות הפקודה rgb2gray (A) והקצה אותו למשתנה חדש. השתמש בפקודה imresize (A, [m n]) כדי לשנות את גודל התמונה. במקרה זה, שינינו את גודל התמונות למטריצה 1024 x 1024. כדי לשפר את המבנים הצינוריים של התמונה, השתמש שוב בפקודה הסימטרית והקצה אותה למשתנה חדש.
להלן ההצהרה האחרת. אם התמונה אינה מטריצת תלת מימד, אנו רוצים לדלג על המרה. בצע את אותו הדבר כמו המשפט if, אך ללא הפקודה rgb2gray (A).
צור משתנה חדש, והגדר אותו למשתנה מהצעד הסימטרי הגדול מ- 0.15. זה סף את התמונה בעוצמות גדולות מ 0.15.
נחזור על שורות הקודים משלבים 4 ו -5 של ההנחיות מקו המסנן החציוני עד לקו imshow (I). לאחר מכן, השתמש בסכום הפקודה (I (:)) כדי להוסיף את כל הפיקסלים המרכיבים את כלי הדם, ולהקצות אותו למשתנה נפרד. תן שם למשתנה חדש NormalBloodVessels (i) והגדר אותו שווה למשתנה מתוך הפקודה sum (I (:)). זה מוסיף את הנתונים למטריצה.
סיימו את הלולאה וחזרו אך על ה- MRA של המוח המושפע מויאמויה. תן שם למשתנה בסוף MoyaMoyaBloodVessels (i) כדי לא לבלבל אותו עם MRAs המוח הרגיל.
שלב 8: הפעל מבחן T דוגמאות עצמאיות
מכיוון שישנן שתי דגימות עצמאיות ואוכלוסייה קטנה, הפעל בדיקת t דגימות עצמאיות.
צור ושם פונקציה שמפעילה בדיקת t דוגמאות עצמאית כדי לקבוע אם כמות כלי הדם ב- MRA של המוח הרגיל שוות באופן משמעותי או לא לזו של MRA של המוח המושפע מויאמויה.
הצג את ההשערה שנקבעה לבדיקה באמצעות הפקודה disp ('X'). בשורה הראשונה, הציגו, "השערות לשתי בדיקות מדגם t." בשורה השנייה, הצג, "H0 = כמות כלי הדם של מוח רגיל שווה לכמות כלי הדם של המוח עם מחלת Moyamoya", כדי לציין את השערת האפס. בשורה השלישית, הצג, "HA = כמות כלי הדם של המוח הרגיל אינה שווה לכמות כלי הדם של המוח עם מחלת מויאמויה". לקבוע את ההשערה החלופית.
בעזרת רווח סמך של 95% וגודל מדגם של 3, חשב את ציון t באמצעות הפקודה tinv ([0.025 0.975], 2) והקצה למשתנה t. השתמש בפקודה var (NormalBloodVessels) ו- var (MoyaMoyaBloodVessels) והקצה אותם למשתנים כדי לחשב את השונות של שתי מערכות הנתונים.
בדוק אם השונות קרובה לשווה או לא. בצע זאת על ידי יצירת הצהרת if/else עם הפקודה if, else. לקבלת המצב בהצהרת if, כתוב A / B == [0.25: 4], כאשר A הוא המשתנה שמייצג את השונות של כלי דם תקינים ו- B הוא המשתנה שמביא את השונות של כלי הדם של Moyamoya. 0.25 ו -4 מגיעים מהערכה כללית לקביעה אם השונות שוות או לא. לאחר מכן הפעל את מבחן t לדוגמה עם [h, p] = ttest2 (A, B, 0.05, 'שניהם', 'שווים'), כאשר A ו- B הם אותם משתנים כפי שהוזכר קודם לכן. עבור המשפט האחר, השתמש [h, p] = ttest2 (A, B, 0.05, 'שניהם', 'לא שווים') כדי להריץ בדיקת t לדוגמא שני במקרה שהשונות אינן שוות. סיים את הצהרת ה- if/else. זה יחשב את p.
צור הצהרת if/else שתציג מסקנה המבוססת על הערך של p. התנאי עבור הצהרת if יהיה p> 0.05. מכיוון שבדרך כלל אנחנו לא מצליחים לדחות את השערת האפס כאשר הערך של p גדול מ- 0.05, השתמש בפקודה disp ('X') כדי להציג את "מכיוון שערך p גדול מ- 0.05, אנו לא מצליחים לדחות את השערת האפס" ו- " לכן אנו לא מצליחים לדחות שכמות כלי הדם של מוח רגיל שווה לכמות של מוח עם מחלת מויאמויה ". בהצהרת האחרים, מכיוון שאנו בדרך כלל דוחים את השערת האפס כאשר הערך של p מתחת ל -0.05, השתמש בפקודה disp ('X') כדי להציג "מכיוון שערך p פחות מ -0.05 אנו דוחים את השערת האפס," ו " לכן אנו לא מצליחים לדחות שכמות כלי הדם של המוח הרגיל אינה שווה לזה של מוח עם מחלת מויאמויה ". סיים את הצהרת ה- if/else.
מוּמלָץ:
הנחיית תכנות עיבוד מעניינת למעצב-בקרת צבעים: 10 שלבים
תכנות מעניינות לתכנות עיבוד למעצב-שליטה בצבעים: בפרקים הקודמים דיברנו יותר על אופן השימוש בקוד לביצוע עיצוב במקום נקודות ידע על צבע. בפרק זה, אנו הולכים לחקור היבט זה של ידע עמוק יותר
מערכת זיהוי וכיבוי אש מבוססת עיבוד תמונה: 3 שלבים
מערכת זיהוי וכיבוי אש מבוססת עיבוד תמונה: שלום חברים זוהי מערכת גילוי וכיבוי אש המבוססת על עיבוד תמונה באמצעות Arduino
עיבוד תמונה עם ה- Raspberry Pi: התקנת OpenCV והפרדת צבעי התמונה: 4 שלבים
עיבוד תמונות באמצעות ה- Raspberry Pi: התקנת OpenCV והפרדת צבעי התמונה: פוסט זה הוא הראשון מתוך מספר הדרכות לעיבוד תמונות שעומדות לעקוב. אנו בוחנים מקרוב את הפיקסלים המרכיבים תמונה, לומדים כיצד להתקין OpenCV ב- Raspberry Pi ואנו גם כותבים סקריפטים של בדיקה כדי ללכוד תמונה וגם
הוק מחווה: רובוט נשלט על ידי מחוות יד באמצעות ממשק מבוסס עיבוד תמונה: 13 שלבים (עם תמונות)
הוק מחווה: רובוט נשלט על ידי מחוות יד באמצעות ממשק מבוסס עיבוד תמונה: הוק מחווה הוצג ב- TechEvince 4.0 כממשק פשוט המבוסס על עיבוד תמונה ומכונה. התועלת שלה נעוצה בעובדה שאין צורך בחיישנים נוספים או לבישים למעט כפפה בכדי לשלוט במכונית הרובוטית הפועלת על
עיבוד תמונה קוונטימטרית: 5 שלבים
עיבוד תמונות קוונטימטרי: (האיור למעלה ממחיש השוואה בין שיטת עיבוד התמונה הקיימת לעיבוד תמונה קוונטימטרי. שימו לב לתוצאה המשופרת. התמונה הימנית העליונה מציגה חפצים מוזרים הנובעים מהנחה שגויה שתמונות מודדות משהו כזה