جدول المحتويات:
- الخطوة 1: تنظيم بيانات الماموجرام
- الخطوة الثانية: معالجة الصور
- الخطوة 3: كود العتبة
- الخطوة 4: إيجاد الشذوذ لكل صورة ثنائية
- الخطوة 5: رسم موقع الكتلة المشخصة وحجمها للمقارنة المرئية
- الخطوة 6: تنفيذ طريقة المقارنة الثانية
- الخطوة 7: تحليل البيانات المجمعة
- الخطوة 8: صنع المصنف الخاص بك
- الخطوة 9: التحسينات؟ أي أفكار؟
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
كان الغرض من هذا المشروع هو تحديد واستخدام معلمة لمعالجة صور التصوير الشعاعي للثدي ذات التدرج الرمادي لمختلف تصنيفات الأنسجة الخلفية: الأنسجة الدهنية والغدية الدهنية والكثيفة. يستخدم هذا التصنيف عندما يقوم اختصاصيو الأشعة بتحليل صور الثدي الشعاعية ويحتاجون إلى التفكير فيما إذا كانت كثافة الأنسجة ستحجب أي تشوهات مثل الآفات أو الأورام. هذا بسبب الهياكل الفسيولوجية الطبيعية مثل الأنسجة الغدية والنسيج الضام الليفي. والتشكيلات غير الطبيعية مثل التكلسات والأورام ستظهر ساطعة للغاية في صورة الماموجرام بينما تظهر الأنسجة الدهنية الأقل كثافة باللون الأسود. لذلك ، كان من المناسب برمجة مصنف يمكنه التعامل مع مستويات كثافة البكسل لتصور وتحديد الكتل بشكل أفضل.
الخطوة 1: تنظيم بيانات الماموجرام
من أول الأشياء التي أدركت أنني بحاجة للتعامل معها هو تنظيم البيانات بطريقة واضحة وموجزة وسهلة الوصول. هذه هي المتغيرات التي استخرجتها من قاعدة بيانات MIAS المصغرة لتصوير الثدي بالأشعة السينية. لقد أنشأت مصفوفتين. واحد يحتوي على 4 أعمدة:
- رقم الصورة:
- x إحداثي الكتلة
- إحداثيات ص للكتلة
- نصف قطر الكتلة: (حدد هذا الحجم التقريبي للكتلة
احتوت المصفوفة الثانية على معلومات التصنيف:
- نوع نسيج الخلفية: دهني (F) ، دهني غدي (G) ، كثيف (D)
- وصف الكتلة: محدد جيدًا (CIRC) ، spiculated (SPIC) ، تشويه معماري آخر (MISC) غير محدد جيدًا (ARCH) ، عدم تناسق (ASYM) ، عادي (NORM)
- التشخيص: حميد (ب) ، خبيث (م)
نظرًا لأن الهدف من هذا المشروع هو تحديد أفضل عتبة لكل نوع من أنواع أنسجة الخلفية ، فلم تكن جميع المعلومات ضرورية. ومع ذلك ، يمكنك توسيع مشروعك ليشمل تحليل النسيج واختبار المصنف الخاص بك مقابل الأوصاف الجماعية المعروفة.
ملاحظة جانبية: نظمت قاعدة البيانات التي حصلت منها على صور الثدي المشخصة المعلومات حول كل صورة ماموجرام في ملف نصي منفصل عن الصور. كان من الصعب بالنسبة لي استخراج البيانات من ملف نصي وتنظيمها في نماذج مصفوفة ، لكن الرابط التالي كان مفيدًا جدًا في معرفة كل ذلك. بدلاً من ذلك ، فقط اضبط الكود الذي قمت بلصقه أعلاه لأغراضك.
تنسيق ملف الماموجرام: mdb001 G CIRC B 535425197
mdb002 G CIRC B 522280 69
تعليمات TextScan: https://www.mathworks.com/help/matlab/ref/textsca … قاعدة بيانات Mamogram:
الخطوة الثانية: معالجة الصور
حسنًا ، الشيء الثاني الذي ظهر عندما كنت أفكر في كيفية تحديد الكتل هو أنه بالنسبة للعديد من صور الثدي الشاذة غير الطبيعية لم أتمكن من تحديد مكان الشذوذ أو حجمه. من الواضح ، بما أنني لست اختصاصي أشعة متمرسًا ، فقد كان ذلك متوقعًا. ومع ذلك ، فإن الطريقة الأكثر وضوحًا للعثور على التشوهات (وفقًا لعمليات البحث المطولة التي أجريتها على google) هي النظر إلى تركيزات المناطق الساطعة والمظلمة. لقد استخدمت في المقام الأول وظيفة adapthisteq لتحسين تباين الصورة ثم قمت بتحويل الصورة إلى صورة ثنائية لتجربة مستويات عتبة مختلفة.
- adapthisteq: تعمل هذه الوظيفة على تحويل قيم كثافة الصور ذات التدرج الرمادي و rgb باستخدام معادلة الرسم البياني التكيفية المحدودة التباين. بمعنى آخر ، يقوم بضبط الرسم البياني لقيم الكثافة على نوع توزيع محدد. رابط الرياضيات لهذه الوظيفة مرفق أدناه لمزيد من القراءة.
- التداخل: يُنشئ صورة ثنائية من صورة ذات مقياس رمادي عن طريق تعيين جميع وحدات البكسل فوق درجة معينة من الدقة إلى 1 ثانية والبكسل أقل من هذه القيمة 0. لقد استخدمت هذه الوظيفة لاختبار الحد الأمثل لتقليل ضوضاء أنسجة الخلفية.
الخطوة 3: كود العتبة
يتم استخدام حلقة for لترجمة صورة الثدي الشعاعية إلى ثنائيات ذات عتبات متفاوتة. لإعطاء عرض أكبر للصورة ، تحتوي الحلقة for على الكود من الخطوة 3 إلى الخطوة 7. لذلك سيتم تحليل كل صورة ثنائية بحثًا عن أي تشوهات. بالإضافة إلى ذلك ، يتم تغليف حلقة for في حلقة for أخرى تستورد صورة ماموجرام جديدة من قاعدة البيانات في كل تكرار.
الخطوة 4: إيجاد الشذوذ لكل صورة ثنائية
لقد قمت أيضًا بمعالجة الصور الثنائية باستخدام وظيفة strel جنبًا إلى جنب مع imopen لإزالة ضوضاء الخلفية. يتم عكس الصورة الثنائية من الخطوة السابقة وتصفيتها باستخدام الحي المحدد بواسطة SE. ثم استخدمت bwlabel لتسمية أي مناطق بها 8 بكسلات متصلة على الأقل.
تم استخدام وظيفة دعائم المنطقة للعثور على خصائص النقطه الوسطى والمساحة لكل بقعة تم تحديدها بواسطة bwlabel.
ثم تم تحديد جميع النقاط الأكبر من 500 بكسل باستخدام العضو. تم رسم النقط الوسطى للبقع المحددة على صورة تعرض فقط البقع الأكبر في المساحة من 500. المنطقة المحددة = عضو (مُسمى ، مؤشرات (SortedAreas> 500)) ؛ البقع = محددة> 0 ؛
الخطوة 5: رسم موقع الكتلة المشخصة وحجمها للمقارنة المرئية
كنت أرغب في معرفة ما إذا كانت النقاط التي عثر عليها bwlabel صحيحة. لقد فعلت هذا بطريقتين. قمت أولاً بتحليل دقة المصنف الخاص بي عن طريق إجراء مقارنة بصرية. لقد رسمت ببساطة الحجم الفعلي وموقع الشذوذ (الدائرة الحمراء) والموقع المحدد بواسطة الكود (x الأزرق) على صورة الماموجرام المعالجة مسبقًا. تظهر الصور الست أعلاه تأثيرات زيادة قيمة عتبة التدرج الرمادي.
الخطوة 6: تنفيذ طريقة المقارنة الثانية
كانت الطريقة الثانية التي اختبرت بها المصنف وقيم العتبة هي تحديد ما إذا كانت المواقع التي وجدها المصنف ضمن مسافة معينة من إحداثيات الشذوذ التي تم تشخيصها. لقد قمت بحفظ العتبات التي كانت نقطة واحدة على الأقل من النقاط المحددة لها ضمن 1.5 * r من الشذوذ المعروف إلى ملف نصي منفصل يسمى Mammogram Data. كان الغرض من ذلك هو العثور على الحد الأدنى المطلوب للمصنف الخاص بي لتحديد الخلل.
الخطوة 7: تحليل البيانات المجمعة
قمت بتشغيل البرنامج على جميع صور الماموجرام غير الطبيعية وتركت مع ملف نصي ضخم من البيانات. من أجل العثور على أفضل عتبة لكل نوع من أنواع الأنسجة ، قمت بتنظيم البيانات حسب نوع الأنسجة ورسمت رسمًا بيانيًا لقيم العتبة لكل نوع من أنواع الأنسجة. تم تحديد قيمة العتبة المناسبة بناءً على العتبة التي توفر أكثر النتائج دقة لكل نوع من أنواع الأنسجة. لقد حفظت هذه البيانات لتحميلها إلى المصنف الخاص بي.
الخطوة 8: صنع المصنف الخاص بك
بعد أن وجدت قيم العتبة الأكثر ملاءمة لكل نوع من أنواع الأنسجة ، قمت بتحرير الكود الأصلي الخاص بي ليقوم المستخدم بإدخال رقم الصورة ونوع الأنسجة لاختيار الحد الأدنى لصورة التصوير الشعاعي للثدي. ثم قمت بعد ذلك برسم موقع التصوير الشعاعي للثدي الذي تم تشخيصه مع المواقع الموجودة في صور الماموجرام الأصلية. أردت أن أجعل هذا أكثر متعة ، لذلك قمت ببرمجة وظيفة لاقتصاص منطقة دائرية تحيط بعائد الاستثمار. سيتم توجيه المستخدم لاختيار نقطة مركزية والعديد من النقاط التي تشمل عائد الاستثمار على أفضل وجه. لقد أرفقت كلا ملفي matlab هنا.
الخطوة 9: التحسينات؟ أي أفكار؟
أثناء كتابتي لهذا التوجيه ، بدأت في رؤية العديد من التحسينات التي يمكنني إجراؤها على المصنف مثل إيجاد طرق للتمييز بين الأنواع المختلفة من الكتل المحددة بناءً على تحليل النسيج أو تحسين قسم الاختبار الخاص بالدقة في SandBoxProject. ملف. نظرًا لأن هذا كان مشروعًا له موعد نهائي ، فقد اضطررت للتوقف في مكان ما ، لكنني آمل أن أتمكن من استخدام مهارات معالجة الصور التي تعلمتها في التطبيقات الأخرى. أيضًا ، أرفقت الملف الذي تم استخدامه لمعالجة جميع صور الماموجرام غير الطبيعية.