جدول المحتويات:

صندوق الدماغ: تتبع الحجم العصبي بمرور الوقت: 20 خطوة
صندوق الدماغ: تتبع الحجم العصبي بمرور الوقت: 20 خطوة

فيديو: صندوق الدماغ: تتبع الحجم العصبي بمرور الوقت: 20 خطوة

فيديو: صندوق الدماغ: تتبع الحجم العصبي بمرور الوقت: 20 خطوة
فيديو: شوف الندم في تضييع الوقت 2024, يوليو
Anonim
صندوق الدماغ: تتبع الحجم العصبي بمرور الوقت
صندوق الدماغ: تتبع الحجم العصبي بمرور الوقت

أدى التقدم إلى حدود حياة الإنسان الأطول إلى ظهور أمراض لم تشهدها الحضارات قبل حضارتنا. من بين هؤلاء ، أثر مرض الزهايمر على ما يقرب من 5.3 مليون أمريكي من كبار السن في عام 2017 ، أو ما يقرب من 1 من كل 10 أمريكيين مسنين (https://www.alz.org/facts/) وعدد لا يحصى من المصابين بالخرف. للمساعدة في الكفاح من أجل فهم ما يصيب كبار السن لدينا ، ستزود هذه الشفرة الباحثين المستقبليين والشغوفين بالفضول بالقدرة على تتبع حجم الدماغ بمرور الوقت.

الخطوة 1: استخدام Brain Box

باستخدام صندوق الدماغ
باستخدام صندوق الدماغ

لاستخدام صندوق الدماغ ، يحتاج المرء فقط إلى ما يلي:

  • فحوصات التصوير بالرنين المغناطيسي للدماغ واسم هذه الملفات وتنسيقها (يجب أن يكون لها نفس الأبعاد تقريبًا)
  • طول مسح واحد
  • المسافة بين كل طبقة (مسح بالرنين المغناطيسي)
  • اسم المريض (عند الإدخال ، لا تقم بتضمين مسافات ويرجى كتابة الاسم الأول واسم العائلة بأحرف كبيرة ، مثل: FirstnameLastname)

ومن هذا المنطلق ، يمتلك المرء القدرة على تتبع اتجاهات الأفراد في حجم الدماغ بمرور الوقت. وبالتالي ، يمكن تتبع أرقام اتجاهات مرض الزهايمر بواسطة هذا البرنامج. كان الطول الذي استخدمناه في التجربة 180 ملم لطول مسح واحد و 5 ملم للمسافة بين فحوصات التصوير بالرنين المغناطيسي ، بناءً على متوسط الأرقام.

ومع ذلك ، لا يلزم تقييد تطبيق صندوق الدماغ على هذه المهمة الواحدة. إذا كانت المقاطع العرضية لمادة صلبة معينة عبارة عن صورة فوتوغرافية ، مثل الورم في حد ذاته ، فيمكن أيضًا تتبع اتجاهات التغييرات في الحجم لهذه المواد في البرنامج.

الخطوة الثانية: مقدمة: تحليل المقاطع العرضية

مقدمة: تحليل المقاطع العرضية
مقدمة: تحليل المقاطع العرضية

في الهياكل ثلاثية الأبعاد ، تسمى المستويات ثنائية الأبعاد التي تتكون منها هذه المقاطع العرضية. تخيل أن كومة من الأوراق تشكل منشورًا مستطيلًا ، ثم تكون كل قطعة من الورق مقطعًا عرضيًا للورقة. في تخيل الدماغ ، نطبق نفس مسار التفكير. التصوير بالرنين المغناطيسي (انظر المعلومات حول التصوير بالرنين المغناطيسي) يلتقط المقاطع العرضية للدماغ ، ومن استخدام الحدود المحددة في كل "طبقة" من الدماغ المتوفرة ، يمكننا بناء هيكل لنمذجة وإيجاد حجم الدماغ. يجب علينا أولاً بناء وظيفة لتوفير معلومات حول هذه الحدود.

الخطوة 3: إعداد وظيفة: LevelCurveTracings.m

إعداد وظيفة: LevelCurveTracings.m
إعداد وظيفة: LevelCurveTracings.m
إعداد وظيفة: LevelCurveTracings.m
إعداد وظيفة: LevelCurveTracings.m
إعداد وظيفة: LevelCurveTracings.m
إعداد وظيفة: LevelCurveTracings.m
إعداد وظيفة: LevelCurveTracings.m
إعداد وظيفة: LevelCurveTracings.m

أولاً ، تأكد من أن جهاز الكمبيوتر الخاص بك قد تم تنزيل MATLAB_R2017b (تنزيله هنا) وافتح MATLAB. في واجهة MATLAB ، انقر فوق الزر الموجود في الزاوية اليسرى العليا من النافذة الذي يشير إلى "جديد" بعلامة زائد صفراء غامقة ، وحدد الخيار "وظيفة" ، لفتح نافذة في نافذة المحرر مساحة تشبه تلك الموجودة في الصورة الثالثة. سنركز على تغيير السطر الأول لإعداد الوظيفة. حيث تقول "outputArg1" ، استبدلها بـ "brain" و "outputArg2" لتقول "الثقوب" و "untitled2" إلى "exp2" و "inputArg1" إلى "الصورة" وحذف "inputArg2". لديك الآن وظيفة يجب استدعاؤها باستخدام "exp2" ، مع أخذ "صورة" وسيطة واحدة وإخراج حدود "الدماغ" و "الثقوب". يجب أن يشبه السطر الأول من الوظيفة الخط الموضح في الصورة الرابعة. احذف كل الكود الموجود أسفل هذا السطر الأولي.

الخطوة 4: تطوير الخوارزمية المقيدة: إيجاد الحدود

تطوير الخوارزمية المقيدة: إيجاد الحدود
تطوير الخوارزمية المقيدة: إيجاد الحدود

اكتب الرمز كما يلي أسفل السطر. هذا القسم من الوظيفة يقوم بما يلي سطرا بسطر.

  1. قم بتحميل الصورة "image" في المتغير "mri".
  2. حوّل "mri" إلى صورة مكونة من قيم في نطاق من الأرقام إلى الآحاد والأصفار (ويعرف أيضًا باسم التحويل الثنائي) استنادًا إلى قيمة عتبة معينة. إذا كانت القيمة في البكسل تساوي 0.1 أو أكبر ، يتم تعيينها على واحد ، وإذا لم تكن كذلك ، يتم تعيين القيمة عند هذا البكسل على صفر.
  3. تقوم الأسطر الأربعة التالية بتحويل 10 أعمدة وصفوف عند حواف طبقة مسح التصوير بالرنين المغناطيسي إلى أصفار ، لتجنب قراءة القيم غير الصحيحة مثل وضع الحدود (كما تعلمنا من تجربة الرمز).
  4. في السطر الأخير ، تتعقب bwboundaries حدود الصورة الثنائية "mri" وتضعها مساوية لـ "b" ، وهي مصفوفة تحتوي على عناصر تتوافق فهارسها مع تلك الخاصة بالحدود المعينة بواحد.

الخطوة 5: تطوير الخوارزمية المقيدة: إنشاء مصفوفة الحدود الخارجية

تطوير الخوارزمية المقيدة: إنشاء مصفوفة ملزمة خارجية
تطوير الخوارزمية المقيدة: إنشاء مصفوفة ملزمة خارجية

اتبع في نافذة المحرر مع الكود التالي في الصورة. يقوم هذا القسم من الكود بما يلي سطراً بسطر.

  1. ابحث عن طول كل صف من صفوف الصورة الثنائية "b" (يطبق cellfun طول الوظيفة على كل صف).
  2. اضبط "loc" لتخزين الحد الأقصى من الأطوال.
  3. ابحث عن فهرس الحد الأقصى للطول ، الذي تم تعيينه للتخزين في "أكبر تتبع".
  4. ابحث عن حجم الصورة "mri" ، والتي تتكون من نفس حجم "b" ، واضبطها على "BWsize".
  5. ابحث عن عدد الصفوف في مصفوفة الصورة ، واضبطها على "ysize".
  6. ابحث عن عدد الأعمدة في مصفوفة الصورة ، واضبطها على "xsize".
  7. إنشاء مصفوفة "bigTraceMat" ، مصفوفة "ysize" بواسطة "xsize" من الأصفار.
  8. ابحث عن الفهرس المكافئ من القيم المكتوبة المقابلة لمكان وجود أكبر قيم للتتبع x وقيم y ، وقم بتخزينها في المتجه "lindex".
  9. في مصفوفة الأصفار ، "largeTraceMat" ، حوّل العناصر الموجودة في الفهارس التي تتوافق مع قيم الفهرس المخزنة كعناصر في "lindex" إلى آحاد.

وبالتالي ، فإن المصفوفة المنطقية "أكبر مساحة تتبع" تحتوي على أكبر منطقة محدودة في المقطع العرضي لمسح الدماغ المحدد على أنها مناطق ذات خلفية من الأصفار

الخطوة 6: تطوير الخوارزمية المقيدة: العمل مع نقطة المركز

تطوير الخوارزمية المقيدة: العمل مع نقطة المركز
تطوير الخوارزمية المقيدة: العمل مع نقطة المركز

بعد ذلك ، يجب أن نختبر لنرى ما إذا كان المقطع العرضي يتكون من أكثر من منطقة واحدة (الأكبر). من خلال اختبار محاذاة النقطه الوسطى الأكبر في المنطقة ، يمكننا أن نرى ما إذا كانت هناك منطقة واحدة متجاورة ، والتي من شأنها أن تؤدي إلى مزيد من النقطه الوسطى ، أو احتمال وجود مناطق متعددة.

  1. استخدم "regionProps" للعثور على معلومات حول النقط الوسطى الموجودة ، وتعيين مساوٍ لمصفوفة البنية "tempStruct"
  2. شكل مجموعة "النقط الوسطى" مع البيانات من الحقل "النقطه الوسطى" متسلسلة عموديا
  3. خذ قيم العمود الثاني من "النقط الوسطى" (إحداثيات البعد الأفقي)
  4. قم بتشغيل مرشح للتحقق من محاذاة النقطه الوسطى إلى المركز الأفقي

الخطوة 7: تطوير الخوارزمية المقيدة: عندما لا يتم توسيط Centroid

تطوير الخوارزمية المقيدة: عندما لا يتم توسيط Centroid
تطوير الخوارزمية المقيدة: عندما لا يتم توسيط Centroid

في حالة عدم تمركز النقطه الوسطى لأكبر منطقة تتبع ، نمر بالخطوات التالية. كما لاحظنا في فحوصات التصوير بالرنين المغناطيسي ، كان الاتجاه هو تصوير نصفي الكرة المخية في المقطع العرضي عندما لا يكونان متجاورين ، لذلك نواصل الآن رسم ثاني أكبر أثر مع أكبر أثر في "أكبر تراكب"

  1. اضبط المصفوفة المتتبعة على متغير جديد "b2"
  2. تهيئة المصفوفة الفارغة "b2" ، بمجموعة مفهرسة بواسطة "loc"
  3. إنشاء شرطي ، عندما لا يتم توسيط النقطه الوسطى (أي طبقة منطقة متعددة)
  4. قم بتعيين حجم تتبع جديد ليتم العثور عليه لكل صف (traceSize2)
  5. قم بتعيين "loc2" للعثور على الفهارس حيث توجد الحدود
  6. اجعل الخلايا المحددة بواسطة "loc2" في "b2" مساوية لـ "largeTrace2"
  7. قم بتحويل الرموز الفرعية إلى مؤشرات ، مع ضبطها على "lindex"
  8. غيّر العناصر المقابلة لـ "lindex" في "largeTraceMat" إلى 1
  9. تهيئة المصفوفة الفارغة "b2" ، بمجموعة مفهرسة بواسطة "loc2"

الخطوة 8: تطوير الخوارزمية المقيدة: تداخل الثقوب

تطوير الخوارزمية المقيدة: تداخل الثقوب
تطوير الخوارزمية المقيدة: تداخل الثقوب

عند التعامل مع الثقوب ، فإن القيم المخزنة في "b2" تتبعت هياكل غير الأثر الأكبر ، وسيكشف رسمها على شكل ممتلئ من "أكبر تراكب" مكان وجود ثقوب في مناطق الدماغ.

  1. إنشاء مصفوفة "ملء مات" ، وهي معبأة في شكل "أكبر تريسمات"
  2. إنشاء مصفوفة "تداخل مات" ، صفيف "ysize" بواسطة "xsize" مصفوفة من الأصفار
  3. إنشاء مجموعة "interferenceloc" ، لتخزين القيم من "b2" ، متسلسلة عموديًا
  4. إنشاء مصفوفة "lindex" لتخزين الفهارس التي تتوافق مع "interferenceloc"
  5. بالنسبة إلى المؤشرات في "التداخل مات" التي تتوافق مع "لينديكس" ، اضبط القيمة على 1 ، مما يجعل منطقة محدودة مختلفة

الخطوة 9: تطوير الخوارزمية المقيدة: تحديد موقع الثقوب ووضع اللمسات الأخيرة على حدود الدماغ وحدود الثقوب

تطوير الخوارزمية المقيدة: تحديد موقع الثقوب ، ووضع اللمسات الأخيرة على حدود الدماغ وثقب الحدود
تطوير الخوارزمية المقيدة: تحديد موقع الثقوب ، ووضع اللمسات الأخيرة على حدود الدماغ وثقب الحدود
  1. اضبط المصفوفة "tempMat" على مساوية لـ "callingMat" بالإضافة إلى "FilledMat" ، وبذلك يتم إضافة كل قيمة في المصفوفة لبعضها البعض
  2. تعيين مجموعة "ثقوب Loc" مساوية للمؤشرين حيث كان كل من "تداخل مات" و "مملوءة" مساويًا لواحد
  3. إعداد "HolesMat" كمصفوفة صفرية من الأبعاد "ysize" x "xsize"
  4. ضع فهارس في "ثقوب مات" التي تساوي "ثقوب لوك" مثل تلك
  5. عيّن "الدماغ" على "bigTraceMat"
  6. تعيين "ثقوب" على "ثقوب مات"

مع الاكتشاف حيث كانت قيم المصفوفات المضافة مساوية لـ 2 ، تم تأمين مواقع الفتحات بسهولة ورسمها على مصفوفة فارغة.

الخطوة 10: تسجيل البيانات: وظيفة PatientFiles.m

بيانات التسجيل: وظيفة PatientFiles.m
بيانات التسجيل: وظيفة PatientFiles.m
بيانات التسجيل: وظيفة PatientFiles.m
بيانات التسجيل: وظيفة PatientFiles.m
بيانات التسجيل: وظيفة PatientFiles.m
بيانات التسجيل: وظيفة PatientFiles.m
بيانات التسجيل: وظيفة PatientFiles.m
بيانات التسجيل: وظيفة PatientFiles.m

يشبه إلى حد كبير إعداد الوظيفة الأخيرة ، انقر فوق الزر الموجود في الزاوية اليسرى العليا من النافذة الذي يشير إلى "جديد" بعلامة زائد صفراء غامقة ، وحدد الخيار "وظيفة" ، لفتح مساحة في نافذة المحرر يشبه ذلك في الصورة الثالثة. في السطر الأول ، احذف مصفوفة الإخراج واستبدلها بـ "الإخراج" فقط ، واستبدل "untitled2" بـ "patientFiles" ، واحذف جميع وسائط الإدخال ، وبدلاً من ذلك اتبع التنسيق المحدد في الصورة الرابعة من سطر التعليمات البرمجية. يجب أن يتطابق السطر الأول من هذه الوظيفة مع تنسيق الصورة.

الخطوة 11: تسجيل البيانات في الملفات

تسجيل البيانات في الملفات
تسجيل البيانات في الملفات
تسجيل البيانات في الملفات
تسجيل البيانات في الملفات

لإعداد ملف لتسجيل البيانات التي تم العثور عليها بواسطة الوظيفة الرئيسية (لم يتم وصفها بعد) ، يجب علينا اتباع هذه الخطوات (على النحو المنصوص عليه في الكود سطرًا بسطر).

  1. تحقق مما إذا كان إدخال اسم المريض عبارة عن سلسلة.
  2. إذا لم تكن سلسلة ، فعرض إدخال اسم المريض يجب أن يكون سلسلة.
  3. قم بإنهاء عبارة if (منع الخطأ).
  4. قم بإعداد عبارة سلسلة "DateandTime" والتي ستعطي التنسيق التالي: hour: minutes - month / day / year.
  5. قم بتعيين متغير fileName على ما يلي: patientName.m.

الآن إلى القسم التالي من الوظيفة: هل يوجد بالفعل ملف بهذا الاسم؟

1) افترض أن الملف بهذا الاسم موجود بالفعل:

  1. قم بتشغيل الملف للحصول على القيم من قائمة الانتظار السابقة
  2. أضف بيانات "DateandTime" للتكرار الحالي كخلية جديدة في مصفوفة خلايا من قيم x (نهاية الفهرس + 1)
  3. أضف قيمة "brainVolume" الحالية كخلية جديدة في صفيف الخلايا من قيم y (نهاية الفهرس + 1)
  4. احفظ المتغيرات الحالية التي تم تحميلها في الملف.

2) لنفترض أن الملف بهذا الاسم غير موجود:

  1. قم بإنشاء ملف جديد بالاسم المخزن في المتغير "patientName"
  2. أضف بيانات "DateandTime" الحالية كخلية في صفيف الخلية الفارغة لقيم x
  3. أضف بيانات "brainVolume" الحالية كخلية في صفيف الخلية الفارغة من قيم y
  4. احفظ المتغيرات الحالية التي تم تحميلها في الملف.

الخطوة 12: تسجيل البيانات: عرض مخطط لحجم الدماغ بمرور الوقت

بيانات التسجيل: عرض مخطط لحجم الدماغ بمرور الوقت
بيانات التسجيل: عرض مخطط لحجم الدماغ بمرور الوقت
  1. قم بتحويل صفيف قيم x (xVals) إلى مصفوفة فئوية (xValsCategorical) ، للسماح بالتخطيط
  2. إنشاء نافذة الشكل 5
  3. ارسم النقاط التي تم تحديدها بواسطة "xValsCategorical" و "yVals" (التي تحتوي على حجم المخ) ، باستخدام دوائر مجوفة للإشارة إلى النقاط ولربطها بخطوط متقطعة
  4. عنوان المؤامرة باسم: اسم المريض بيانات حجم الدماغ
  5. قم بتسمية المحور x كما هو موضح في الصورة
  6. قم بتسمية المحور y كما هو موضح في الصورة
  7. دع الشكل 5 يساوي الناتج

من هذا المنطلق ، ستنتج وظيفة اسم المريض التي يتم استدعاؤها ملفًا يحتوي على بيانات معدلة لتتبع حجم الدماغ بمرور الوقت ، ومؤامرة تعرض الاتجاهات.

الخطوة 13: سد الثغرات في الحبكات الفرعية: Subplotclose.m

سد الثغرات في الحبكات الفرعية: Subplotclose.m
سد الثغرات في الحبكات الفرعية: Subplotclose.m

الوظيفة ، مقتبسة من كود من https://www.briandalessandro.com ، تعمل على سد الفجوات بين الأشكال الفرعية للشفرة الرئيسية ، عندما يتم إنشاء الأشكال التي تعرض صور التصوير بالرنين المغناطيسي وطبقات الدماغ. تعمل وظيفة الحبكة الفرعية المستخدمة في subplotclose.m على ضبط موضع الحبكات الفرعية المعينة لتلائم بعضها البعض بشكل مريح في جانب البعد الأطول. على سبيل المثال ، إذا كان الكود يهدف إلى مصفوفة 7 × 3 ، فستكون الصفوف مناسبة لأن بُعد الصف أطول. إذا كان الكود يقصد مصفوفة 3 × 7 ، فستكون الأعمدة مناسبة بشكل مريح ، مع وجود فجوات في الصفوف ، كما هو موضح في أشكال الكود الرئيسي لدينا.

الخطوة 14: الكود الرئيسي: مسح الكل والحث على المدخلات

الكود الرئيسي: مسح الكل والحث على المدخلات
الكود الرئيسي: مسح الكل والحث على المدخلات

لبدء الكود الرئيسي ، انقر فوق الزر نفسه الذي يشير إلى "جديد" في الزاوية اليسرى العليا من النافذة ، وحدد "البرنامج النصي" بدلاً من "الوظيفة" من الأقسام السابقة. اكتب الرمز كما هو موضح في الصورة داخل نافذة المحرر. تقوم سطور التعليمات البرمجية بالمهام التالية بالترتيب:

  1. أغلق جميع الملفات المفتوحة باستثناء 0 و 1 و 2.
  2. أغلق جميع نوافذ الشكل.
  3. امسح كل المتغيرات في مساحة العمل.
  4. امسح نافذة الأوامر.
  5. العرض في نافذة الأوامر: يرجى إدخال الأبعاد التالية لعمليات التصوير بالرنين المغناطيسي:
  6. في سطر جديد في نافذة الأوامر ، اسأل: طول الفحص بالمليمتر:. سيتم تعيين الاستجابة التي أدخلها المستخدم على المتغير "lengthMM".
  7. في سطر جديد ، اسأل: المسافة بين فحوصات التصوير بالرنين المغناطيسي بالمليمترات:. سيتم ضبط الاستجابة التي يقدمها المستخدم على المتغير "ZStacks".

الخطوة 15: الكود الرئيسي: معالجة الصور دفعة واحدة

الكود الرئيسي: معالجة الصور دفعة واحدة
الكود الرئيسي: معالجة الصور دفعة واحدة
الكود الرئيسي: معالجة الصور دفعة واحدة
الكود الرئيسي: معالجة الصور دفعة واحدة

في هذا القسم ، سيقوم الكود بتحميل الصور (التي تتكون من فحوصات التصوير بالرنين المغناطيسي للمقاطع العرضية للدماغ) وتخزين أسماء كل ملف صورة في المتغير "Base" وعرض كل من عمليات المسح بالرنين المغناطيسي. برجاء اتباع الكود الموجود بالصورة والذي يقوم بالآتي:

  1. قم بإنشاء مصفوفة بنية "BrainImages" تحتوي على معلومات عن جميع الملفات داخل المجلد الحالي التي تتلاءم مع تنسيق اسم MRI _ (). png
  2. تعيين متغير "NumberofImages" يساوي عدد العناصر في مصفوفة البنية "BrainImages"
  3. افتح نافذة الشكل 1
  4. قم بتعيين حلقة for للتنقل خلالها لعدد الصور التي تم حسابها في الملف
  5. لكل حلقة ، "CurrentImage" هو الاسم الخاص بكل ملف MRI_i-p.webp" />
  6. قم بإنشاء مخطط فرعي 3 × 7 لعرض 19 صورة ليتم تحميلها بواسطة "imshow"
  7. اعرض كل صورة كعنصر آخر في نافذة الشكل الفرعي
  8. ضع عنوان لكل عنصر في مخطط فرعي كـ Level_ ، حيث يكون فارغ هو رقم التكرار لحلقة for.
  9. إنهاء حلقة for (تجنب الخطأ)

سيعرض هذا في نافذة الشكل 1 جميع عمليات التصوير بالرنين المغناطيسي في شكل خام بتكوين 3 × 7 مع عدم وجود فجوات في اتجاه x.

الخطوة 16: الكود الرئيسي: الحشو

الكود الرئيسي: الحشو
الكود الرئيسي: الحشو

مع الحشو ، نتجنب مشكلة التناقضات الطفيفة في أحجام الصور التي قد تؤدي إلى خطأ في عدم تطابق الأبعاد في حالة أن إحدى الصور أكبر قليلاً من الأخرى.

  1. افتح نافذة الشكل 2
  2. قم بتحميل مصفوفة الصورة من MRI_1-p.webp" />
  3. ابحث عن حجم مصفوفة الصورة واضبطها على "OriginalXPixels" (لعدد الصفوف) و "OriginalYPixels" (لعدد الأعمدة)
  4. قم بإعداد المصفوفة "BrainMat" لتتكون من جميع الأصفار مع 20 صفًا إضافيًا و 20 عمودًا إضافيًا لكل مستوى ، و 19 مقطعًا عرضيًا إجماليًا ، واحد لكل مستوى.
  5. قم بإعداد "HolesMat" لتتألف من نفس مجموعة الأصفار ثلاثية الأبعاد لإدخال إحداثيات الفتحة لاحقًا
  6. قم بإنشاء "zeroMat" ليكون بحجم اللوح بالإضافة إلى عشرين صفاً وعشرين عموداً ، مصفوفة ثنائية الأبعاد من الأصفار.

الخطوة 17: الكود الرئيسي: تحديد الحدود

الكود الرئيسي: تحديد الحدود
الكود الرئيسي: تحديد الحدود
الكود الرئيسي: تحديد الحدود
الكود الرئيسي: تحديد الحدود
  1. قم بتعيين حلقة for لتصفح البيانات من كل صورة تم تحميلها مسبقًا
  2. بنفس طريقة معالجة الدُفعات سابقًا ، يقوم "CurrentImage" بتحميل الملفات باستخدام "MRI_i.png" ، حيث يمثل i رقم التكرار
  3. قم بتشغيل كل صورة من خلال وظيفة المعالجة "LevelCurveTracings2.m" التي قمت بإنشائها مسبقًا
  4. ابحث عن حجم الناتج "Brain" ، واضبط عدد الصفوف على "Currentrow" وعدد الأعمدة على "Currentcolumns"
  5. اضبط "CurrentMat" على مصفوفة من الأصفار ذات الأبعاد المحددة بواسطة "Currentcolumns" و "Currentcolumns"
  6. قم بتوسيط البيانات من "Brain" في "CurrentMat" ، بهامش 10 صفوف من جميع الجوانب
  7. قم بإنشاء مخطط فرعي بأبعاد 3 × 7 ، لعرض حدود الصور
  8. ضع عنوانًا لكل عنصر من عناصر الحبكة الفرعية في نافذة الشكل
  9. إنشاء مصفوفة ثلاثية الأبعاد "BrainMat" تتكون من كل طبقة حدود "CurrentMat"
  10. إنهاء حلقة for (لتجنب الأخطاء)

يملأ القسم الفرعي التالي الثقوب الموجودة في أعلى وأسفل الشكل ثلاثي الأبعاد المقترح

  1. اضبط "LevelCurve1" على مساوٍ للطبقة الأولى من "BrainMat" (أسفل صلب)
  2. اضبط "LevelCurveEnd" على مستوى مساوٍ للطبقة النهائية من "BrainMat" (أعلى من صلب)
  3. الكتابة فوق "LevelCurve1" بطبقة مملوءة
  4. الكتابة فوق "LevelCurveEnd" بطبقة مملوءة
  5. تعيين الطبقة المعبأة كطبقة سفلية لـ "BrainMat"
  6. تعيين الطبقة المعبأة كطبقة عليا من "BrainMat"

الخطوة 18: الكود الرئيسي: تحديد البعد Z المناسب

الكود الرئيسي: تحديد البعد Z المناسب
الكود الرئيسي: تحديد البعد Z المناسب

تتكون الأسطر الثلاثة الأولى من إعداد مصفوفة فارغة "z" ، وإجراء عمليات تحويل بسيطة (قسمة وحدات البكسل على الطول) للحصول على قراءة مناسبة للحجم بالمليمتر ^ 3

  1. قم بإنشاء حلقة for للتنقل عبر كل طبقة
  2. أوجد عدد الآحاد في طبقة معينة
  3. قم بتحويل إحداثيات z للأحجام إلى قيم يتم تحجيمها إلى النسبة المناسبة ، وتعيينها على "tempz" ، متجه عمود
  4. أضف قيمة z لمنحنى المستوى إلى المتجه z

مع هذا يتم تعديل الإحداثيات z بشكل صحيح.

الخطوة 19: الكود الرئيسي: تحديد إحداثيات X و Y

الكود الرئيسي: تحديد إحداثيات X و Y
الكود الرئيسي: تحديد إحداثيات X و Y

الآن لتحديد موقعي x و y لكل نقطة من الحدود.

  1. قم بتهيئة "xBrain" كمصفوفة فارغة
  2. قم بتهيئة "yBrain" كمصفوفة فارغة
  3. قم بإعداد حلقة for للتكرار خلال كل صورة يتم تحميلها
  4. قم بتجميع مصفوفة من عمودين لتخزين الإحداثيات المستوية لكل نقطة في الحد ، ممثلة في متجهي الأعمدة "RowBrain" و "ColumnBrain"
  5. قم بإلحاق "xBrain" بإحداثيات "RowBrain" الموجودة حاليًا
  6. قم بإلحاق "yBrain" بإحداثيات "ColumnBrain" الموجودة حاليًا
  7. إنهاء حلقة for (لتجنب الخطأ)

الخطوة 20: الكود الرئيسي: رسم هيكل ثلاثي الأبعاد ، وإيجاد الحجم ، وتسجيل البيانات

الكود الرئيسي: رسم بنية ثلاثية الأبعاد ، وإيجاد الحجم ، وتسجيل البيانات
الكود الرئيسي: رسم بنية ثلاثية الأبعاد ، وإيجاد الحجم ، وتسجيل البيانات
الكود الرئيسي: رسم بنية ثلاثية الأبعاد ، وإيجاد الحجم ، وتسجيل البيانات
الكود الرئيسي: رسم بنية ثلاثية الأبعاد ، وإيجاد الحجم ، وتسجيل البيانات
الكود الرئيسي: رسم بنية ثلاثية الأبعاد ، وإيجاد الحجم ، وتسجيل البيانات
الكود الرئيسي: رسم بنية ثلاثية الأبعاد ، وإيجاد الحجم ، وتسجيل البيانات
الكود الرئيسي: رسم بنية ثلاثية الأبعاد ، وإيجاد الحجم ، وتسجيل البيانات
الكود الرئيسي: رسم بنية ثلاثية الأبعاد ، وإيجاد الحجم ، وتسجيل البيانات

باستخدام الدالة alphaShape ، سننشئ بنية ثلاثية الأبعاد يمكننا من خلالها حساب حجم الدماغ.

  1. استخدم alphaShape للوظيفة ، وقم بتوصيل المتجهات "xBrain" و "yBrain" و "z" لإحداثيات x و y و z ، وقم بتعيين مساوٍ لـ "BrainPolyhedron"
  2. افتح نافذة الشكل 3
  3. ارسم شكل ألفا المحسوب "BrainPolyhedron" ، المعروض في نافذة الشكل
  4. احسب حجم شكل ألفا ، باستخدام وظيفة "حجم" تعمل مع أشكال ألفا
  5. تحويل الحجم إلى مم ^ 3
  6. اطبع حجم المادة الصلبة في نافذة الأوامر
  7. المطالبة بتعيين اسم مريض كمدخل
  8. احصل على التاريخ والوقت الحاليين مع الساعة ، وضبط على "DateandTime"
  9. استدعاء وظيفة "patientFiles" لتسجيل ورسم البيانات المحسوبة

من هنا يجب أن تظهر الصورتان الثانية والثالثة الأشكال المنبثقة ، والصورة الرابعة التي يجب عرضها في نافذة الأوامر.

موصى به: