विषयसूची:
- चरण 1: मैमोग्राम डेटा व्यवस्थित करना
- चरण 2: छवि प्रसंस्करण
- चरण 3: थ्रेसहोल्डिंग कोड
- चरण 4: प्रत्येक बाइनरी छवि के लिए असामान्यताएं ढूँढना
- चरण 5: दृश्य तुलना के लिए निदान किए गए द्रव्यमान स्थान और आकार को प्लॉट करना
- चरण 6: दूसरी तुलना पद्धति को लागू करना
- चरण 7: एकत्रित डेटा का विश्लेषण
- चरण 8: अपना खुद का क्लासिफायरियर बनाना
- चरण 9: सुधार? कोई विचार?
वीडियो: मैमोग्राम छवियों में असामान्यताओं की कल्पना और पहचान करने के लिए भिन्न ग्रे स्केल तीव्रता थ्रेसहोल्ड का उपयोग करना: 9 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
इस परियोजना का उद्देश्य विभिन्न पृष्ठभूमि ऊतक वर्गीकरणों के ग्रेस्केल मैमोग्राम छवियों को संसाधित करने के लिए एक पैरामीटर की पहचान करना और उसका उपयोग करना था: फैटी, फैटी ग्लैंडुलर, और घने ऊतक। इस वर्गीकरण का उपयोग तब किया जाता है जब रेडियोलॉजिस्ट मैमोग्राम का विश्लेषण करते हैं और यह विचार करने की आवश्यकता होती है कि क्या ऊतक घनत्व घावों या ट्यूमर जैसी किसी असामान्यता को अस्पष्ट करेगा। ऐसा इसलिए है क्योंकि दोनों सामान्य शारीरिक संरचनाएं जैसे ग्रंथि ऊतक और रेशेदार संयोजी ऊतक। और असामान्य आकारिकी जैसे कैल्सीफिकेशन और ट्यूमर मैमोग्राम पर बहुत उज्ज्वल दिखाई देंगे जबकि कम घने वसायुक्त ऊतक काले दिखाई देंगे। इसलिए, एक क्लासिफायरियर प्रोग्राम करना उचित था जो पिक्सेल तीव्रता के स्तर को सर्वोत्तम रूप से देखने और जनता की पहचान करने के लिए हेरफेर कर सकता है।
चरण 1: मैमोग्राम डेटा व्यवस्थित करना
पहली चीजों में से एक जो मुझे एहसास हुआ कि मुझे संभालने की जरूरत थी, डेटा को बहुत स्पष्ट, संक्षिप्त और सुलभ तरीके से व्यवस्थित करना था। ये वे चर हैं जिन्हें मैंने मैमोग्राम के मिनी-एमआईएएस डेटाबेस से निकाला है। मैंने दो सरणियाँ बनाईं। एक जिसमें 4 कॉलम हैं:
- छवि संख्या:
- x द्रव्यमान का निर्देशांक
- y द्रव्यमान का निर्देशांक
- द्रव्यमान त्रिज्या: (यह द्रव्यमान के लिए अनुमानित आकार को परिभाषित करता है
दूसरी सरणी में वर्गीकरण जानकारी थी:
- पृष्ठभूमि ऊतक का प्रकार: फैटी (एफ), फैटी ग्लैंडुलर (जी), घने (डी)
- मास का विवरण: अच्छी तरह से परिभाषित (सीआईआरसी), स्पिकुलेटेड (एसपीआईसी), बीमार परिभाषित अन्य (एमआईएससी) वास्तुकला विकृति (एआरसीएच), विषमता (एएसवाईएम), सामान्य (एनओआरएम)
- निदान: सौम्य (बी), घातक (एम)
चूंकि इस परियोजना का उद्देश्य प्रत्येक प्रकार के पृष्ठभूमि ऊतक के लिए सर्वोत्तम सीमा निर्धारित करना था, इसलिए सभी जानकारी आवश्यक नहीं थी। हालाँकि, आप बनावट विश्लेषण को शामिल करने के लिए अपनी परियोजना का विस्तार कर सकते हैं और ज्ञात सामूहिक विवरणों के विरुद्ध अपने क्लासिफायर का परीक्षण कर सकते हैं।
साइड नोट: जिस डेटाबेस से मुझे डायग्नोस्टिक मैमोग्राम इमेज मिला है, उसने इमेज से अलग टेक्स्ट फाइल में प्रत्येक मैमोग्राम के बारे में जानकारी को व्यवस्थित किया है। टेक्स्ट फ़ाइल से डेटा निकालना और सरणी रूपों में व्यवस्थित करना मेरे लिए थोड़ा मुश्किल था, लेकिन निम्न लिंक यह सब पता लगाने में बहुत मददगार था। वैकल्पिक रूप से, मैंने आपके उद्देश्यों के लिए ऊपर चिपकाए गए कोड को समायोजित करें।
मैमोग्राम फ़ाइल प्रारूप: एमडीबी001 जी सीआईआरसी बी 535 425 197
एमडीबी002 जी सीआईआरसी बी 522 280 69
टेक्स्टस्कैन सहायता: https://www.mathworks.com/help/matlab/ref/textsca…मैमोग्राम डेटाबेस:
चरण 2: छवि प्रसंस्करण
खैर, दूसरी बात जो तब सामने आई जब मैं यह पता लगा रहा था कि द्रव्यमान की पहचान कैसे की जाए, कई असामान्य मैमोग्राम के लिए मैं नेत्रहीन यह नहीं बता सकता था कि असामान्यता कहाँ थी या यह कितनी बड़ी थी। जाहिर है, चूंकि मैं एक अनुभवी रेडियोलॉजिस्ट नहीं हूं, इसकी उम्मीद थी। हालांकि, असामान्यताओं को खोजने का सबसे सीधा तरीका (मेरी लंबी Google खोजों के अनुसार) उज्ज्वल और अंधेरे क्षेत्रों की सांद्रता को देखना था। मैंने मुख्य रूप से छवि कंट्रास्ट को बढ़ाने के लिए एडेप्टिस्टेक फ़ंक्शन का उपयोग किया और फिर अलग-अलग थ्रेशोल्ड स्तरों के साथ प्रयोग करने के लिए छवि को एक बाइनरी छवि में बदलने के लिए imbinarize।
- एडेप्टहिस्टेक: यह फ़ंक्शन कंट्रास्ट सीमित अनुकूली हिस्टोग्राम इक्वलाइज़ेशन का उपयोग करके ग्रेस्केल और आरजीबी छवियों के तीव्रता मूल्यों को बदल देता है। दूसरे शब्दों में, यह तीव्रता के मूल्यों के हिस्टोग्राम को एक निर्दिष्ट प्रकार के वितरण में समायोजित करता है। इस फ़ंक्शन के लिए मैथवर्क्स लिंक आगे पढ़ने के लिए नीचे संलग्न है।
- imbinarize: एक निश्चित तीव्रता से ऊपर के सभी पिक्सेल को 1s और उस मान के नीचे के पिक्सेल को 0. असाइन करके एक ग्रे स्केल छवि से एक बाइनरी छवि बनाता है। मैंने पृष्ठभूमि ऊतक शोर को कम करने के लिए इष्टतम थ्रेशोल्ड का परीक्षण करने के लिए इस फ़ंक्शन का उपयोग किया।
चरण 3: थ्रेसहोल्डिंग कोड
लूप के लिए अलग-अलग थ्रेसहोल्ड के साथ मैमोग्राम को बिनराइज करने के लिए उपयोग किया जाता है। एक बड़ा चित्र दृश्य देने के लिए, लूप के लिए चरण 3 से चरण 7 तक का कोड होता है। इसलिए असामान्यताओं के लिए प्रत्येक बाइनरी छवि का विश्लेषण किया जाएगा। इसके अतिरिक्त, यह लूप के लिए दूसरे लूप में संलग्न है जो प्रत्येक पुनरावृत्ति में डेटाबेस से एक नई मैमोग्राम छवि आयात करता है।
चरण 4: प्रत्येक बाइनरी छवि के लिए असामान्यताएं ढूँढना
मैंने पृष्ठभूमि शोर को दूर करने के लिए इमोपेन के साथ संयोजन के रूप में स्ट्रेल फ़ंक्शन का उपयोग करके बाइनरी छवियों को आगे संसाधित किया। एसई द्वारा परिभाषित पड़ोस का उपयोग करके पिछले चरण की बाइनरी छवि को उलटा और फ़िल्टर किया गया है। तब मैंने किसी भी क्षेत्र को लेबल करने के लिए bwlabel का उपयोग किया जिसमें कम से कम 8 जुड़े हुए पिक्सेल थे।
क्षेत्र प्रॉप्स फ़ंक्शन का उपयोग bwlabel द्वारा पहचाने गए प्रत्येक स्थान के केन्द्रक और क्षेत्र के गुणों को खोजने के लिए किया गया था।
तब ismember का उपयोग करके 500 पिक्सेल से बड़े सभी स्पॉट की पहचान की गई थी। पहचाने गए स्पॉट के लिए सेंट्रोइड्स को एक छवि पर प्लॉट किया गया था जो केवल 500 से अधिक क्षेत्र में बड़े स्पॉट प्रदर्शित करता था। एरिया आइडेंटिफाइड = इसमेम्बर (लेबल, इंडेक्स (सॉर्टेड एरिया> 500)); स्पॉट = पहचाना गया> 0;
चरण 5: दृश्य तुलना के लिए निदान किए गए द्रव्यमान स्थान और आकार को प्लॉट करना
मैं देखना चाहता था कि क्या bwlabel द्वारा पाए गए धब्बे सही थे। मैंने इसे दो तरह से किया। मैंने पहले दृश्य तुलना करके अपने क्लासिफायरियर की सटीकता का विश्लेषण किया। मैंने बस पूर्व-संसाधित मैमोग्राम छवि पर असामान्यता (लाल वृत्त) के वास्तविक आकार और स्थान और कोड (नीला x) द्वारा निर्धारित स्थान को प्लॉट किया है। ऊपर दी गई छह छवियां ग्रेस्केल थ्रेशोल्ड मान को बढ़ाने के प्रभाव दिखाती हैं।
चरण 6: दूसरी तुलना पद्धति को लागू करना
दूसरे तरीके से मैंने क्लासिफायरियर और थ्रेशोल्ड मानों का परीक्षण किया, यह निर्धारित करके कि क्या क्लासिफायर द्वारा पाए गए स्थान निदान असामान्यता निर्देशांक से एक निश्चित दूरी के भीतर थे। मैंने उन थ्रेशोल्ड को सहेजा, जिनके लिए पहचाने गए बिंदुओं में से कम से कम एक मैमोग्राम डेटा नामक एक अलग टेक्स्ट फ़ाइल के लिए ज्ञात असामान्यता से 1.5*r के भीतर था। इसका उद्देश्य असामान्यता की पहचान करने के लिए मेरे क्लासिफायरियर के लिए आवश्यक न्यूनतम सीमा का पता लगाना था।
चरण 7: एकत्रित डेटा का विश्लेषण
मैंने सभी असामान्य मैमोग्राम छवियों पर प्रोग्राम चलाया और मुझे डेटा की एक विशाल टेक्स्ट फ़ाइल के साथ छोड़ दिया गया। प्रत्येक प्रकार के ऊतक के लिए सर्वोत्तम थ्रेशोल्ड खोजने के लिए मैंने ऊतक प्रकार द्वारा डेटा का आयोजन किया और प्रत्येक ऊतक प्रकार के लिए थ्रेशोल्ड मानों का एक हिस्टोग्राम प्लॉट किया। उचित थ्रेशोल्ड मान तय किया गया था कि किस थ्रेशोल्ड ने प्रत्येक ऊतक प्रकार के लिए सबसे सटीक परिणाम प्रदान किए हैं। मैंने इस डेटा को अपने क्लासिफायरियर पर अपलोड करने के लिए सहेजा है।
चरण 8: अपना खुद का क्लासिफायरियर बनाना
प्रत्येक ऊतक प्रकार के लिए सबसे उपयुक्त थ्रेशोल्ड मान मिलने के बाद, मैंने मैमोग्राम छवि के लिए थ्रेशोल्ड चुनने के लिए उपयोगकर्ता को छवि संख्या और ऊतक प्रकार इनपुट करने के लिए अपना मूल कोड संपादित किया। फिर मैंने मूल मैमोग्राम छवियों पर पाए गए स्थानों के साथ निदान किए गए मैमोग्राम स्थान को प्लॉट किया। मैं इसे और मज़ेदार बनाना चाहता था इसलिए मैंने ROI के आस-पास एक गोलाकार क्षेत्र को क्रॉप करने के लिए एक फंक्शन प्रोग्राम किया। उपयोगकर्ता को एक केंद्र बिंदु और कई बिंदु चुनने का निर्देश दिया जाएगा जो आरओआई को सर्वोत्तम रूप से शामिल करते हैं। मैंने यहां दोनों मैटलैब फाइलें संलग्न की हैं।
चरण 9: सुधार? कोई विचार?
जैसा कि मैं इस निर्देश को लिख रहा था, मुझे कई सुधार दिखाई देने लगे हैं जो मैं क्लासिफायरियर में कर सकता था जैसे कि बनावट विश्लेषण के आधार पर पहचाने गए विभिन्न प्रकार के द्रव्यमानों के बीच अंतर करने के तरीके खोजना या सैंडबॉक्सप्रोजेक्ट के सटीकता अनुभाग के लिए अपने परीक्षण में सुधार करना। फ़ाइल। चूंकि यह एक समय सीमा के साथ एक परियोजना थी, मुझे कहीं रुकना पड़ा, लेकिन मुझे उम्मीद है कि मैं अन्य अनुप्रयोगों में सीखे गए छवि प्रसंस्करण कौशल का उपयोग करने में सक्षम हूं। इसके अलावा, मैंने उस फ़ाइल को संलग्न किया जिसका उपयोग सभी असामान्य मैमोग्राम छवियों को बैचने के लिए किया गया था।
सिफारिश की:
चेहरा पहचान और पहचान - ओपनसीवी पायथन और अरुडिनो का उपयोग करके Arduino फेस आईडी .: 6 कदम
चेहरा पहचान और पहचान | ओपनसीवी पायथन और अरुडिनो का उपयोग करते हुए Arduino फेस आईडी: चेहरे की पहचान AKA फेस आईडी आजकल मोबाइल फोन पर सबसे महत्वपूर्ण विशेषताओं में से एक है। तो, मेरा एक प्रश्न था "क्या मेरे पास अपने Arduino प्रोजेक्ट के लिए एक फेस आईडी हो सकता है" और इसका उत्तर हां है… मेरी यात्रा इस प्रकार शुरू हुई: चरण 1: हम तक पहुंच
इन्फिनियन एक्सएमसी4700 रिलैक्सकिट, इन्फिनियन डीपीएस422 और एडब्ल्यूएस का उपयोग करके बैरोमेट्रिक दबाव और तापमान की कल्पना करना: 8 कदम
इन्फिनियन एक्सएमसी4700 रिलैक्सकिट, इनफिनॉन डीपीएस422 और एडब्ल्यूएस का उपयोग करके बैरोमेट्रिक दबाव और तापमान की कल्पना करना: यह इन्फिनॉन के डीपीएस 422 का उपयोग करके बैरोमीटर के दबाव और तापमान को पकड़ने के लिए एक सरल परियोजना है। यह समय की अवधि में दबाव और तापमान को ट्रैक करने के लिए अनाड़ी हो जाता है। यह वह जगह है जहां विश्लेषिकी तस्वीर में आती है, बदलाव पर अंतर्दृष्टि
एक-क्लिक विंडोज और लिनक्स एप्लिकेशन (32-बिट और 64-बिट) के साथ DIY MusiLED, म्यूजिक सिंक्रोनाइज्ड एलईडी। रीक्रिएट करने में आसान, उपयोग में आसान, पोर्ट करने में आसान: 3 चरण
एक-क्लिक विंडोज और लिनक्स एप्लिकेशन (32-बिट और 64-बिट) के साथ DIY MusiLED, म्यूजिक सिंक्रोनाइज्ड एलईडी। रीक्रिएट करने में आसान, उपयोग में आसान, पोर्ट करने में आसान: यह प्रोजेक्ट आपको 18 LED (6 रेड + 6 ब्लू + 6 येलो) को अपने Arduino बोर्ड से कनेक्ट करने और आपके कंप्यूटर के साउंड कार्ड के रियल-टाइम सिग्नल का विश्लेषण करने और उन्हें रिले करने में मदद करेगा। एल ई डी बीट इफेक्ट (स्नेयर, हाई हैट, किक) के अनुसार उन्हें रोशन करने के लिए
एलईडी लाइट स्ट्रिंग्स को 12 वी के लिए रीवायर करने के बजाय 12 वी-टू-एसी-लाइन इन्वर्टर का उपयोग करने के लिए खुद को समझाएं।: 3 कदम
एलईडी लाइट स्ट्रिंग्स के लिए उन्हें 12 वी के लिए रीवायर करने के बजाय 12 वी-टू-एसी-लाइन इन्वर्टर का उपयोग करने के लिए खुद को समझाएं: मेरी योजना सरल थी। मैं एक दीवार से चलने वाली एलईडी लाइट स्ट्रिंग को टुकड़ों में काटना चाहता था और फिर इसे 12 वोल्ट से चलाने के लिए फिर से चालू करना चाहता था। विकल्प एक पावर इन्वर्टर का उपयोग करना था, लेकिन हम सभी जानते हैं कि वे बहुत अक्षम हैं, है ना? सही? या क्या वे?
एक इलेक्ट्रॉनिक बाथरूम स्केल को शिपिंग स्केल में <$1: 8 चरणों में बदलें (चित्रों के साथ)
<$1 के लिए एक इलेक्ट्रॉनिक बाथरूम स्केल को शिपिंग स्केल में कनवर्ट करें: मेरे छोटे व्यवसाय में मुझे शिपिंग के लिए फर्श पैमाने पर मध्यम से बड़ी वस्तुओं और बक्से का वजन करने की आवश्यकता है। एक औद्योगिक मॉडल के लिए बहुत अधिक भुगतान करने के बजाय, मैंने एक डिजिटल बाथरूम स्केल का उपयोग किया। मैंने पाया कि यह किसी न किसी सटीकता के लिए काफी करीब है जो मैं फिर से कर रहा हूं