Სარჩევი:
- ნაბიჯი 1: დაიწყეთ გრაფიკული ინტერფეისი (GUI)
- ნაბიჯი 2: MRI სურათების ჩატვირთვა და კითხვა MATLAB– ში
- ნაბიჯი 3: სურათის გაფილტვრა
- ნაბიჯი 4: სიმსივნის იზოლაცია ელიფსური ნიღბის საშუალებით
- ნაბიჯი 5: სიმსივნის აღწერა
- ნაბიჯი 6: სიმსივნის ფიზიკური თვისებების ანალიზი
ვიდეო: ტვინის სიმსივნის MRI გამოვლენა Matlab– ის გამოყენებით: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ავტორი: მადჰუმიტა კანანი, ჰენრი ნგუენი, ეშლი ურრუტია ავილა, მეი ჯინი
ეს MATLAB კოდი არის პროგრამა, რათა დადგინდეს სიმსივნის ზუსტი ზომა, ფორმა და მდებარეობა, რომელიც აღმოჩენილია პაციენტის ტვინის MRI სკანირებაში. ეს პროგრამა მიზნად ისახავს თავის ტვინის MRI სკანირების დროს სიმსივნის გამოვლენას, მაგრამ ის ასევე შეიძლება გამოყენებულ იქნას კიბოს დიაგნოსტიკისთვის სხვა ორგანოების სკანირებაშიც.
ქვემოთ მოცემული ინსტრუქციები პირველ რიგში აღწერს სურათის ანალიზის მეთოდებს MRI სკანირების გაფილტვრისა და გაწმენდის გზით, ბინარიზაციის, მედიანური გაფილტვრისა და მოცურების ფანჯრების საშუალებით. შემდეგი, ის გასწავლით თუ როგორ გამოვყოთ სიმსივნე წინასწარ გენერირებული ელიფსური ნიღბის გამოყენებით და შემდგომ გავაფილტროთ ის სიმსივნის ფორმის პერიმეტრის გამოსაკვეთად.
სიმსივნის გამოვლენისთანავე, ინსტრუქცია კიდევ უფრო აღწერს, თუ როგორ უნდა ჩართოთ ეს პროგრამა გრაფიკულ ინტერფეისში (GUI). ამ ინსტრუქციის განმავლობაში, შესაბამისი კოდი და ფაილები დაერთვება იმის გასაგებად, თუ როგორ მუშაობს MRI სკანირების ანალიზი.
ზოგიერთი რამ, რაც უნდა იცოდეთ, გადმოწეროთ და გქონდეთ მზად სანამ გააგრძელებთ ამ სასწავლო ინსტრუქციას: 1. დარწმუნდით, რომ გადმოწერილი გაქვთ MATLAB- ის უახლესი ვერსია. შეგიძლიათ დააინსტალიროთ R2018b აქ:
2. ამ პროგრამის გასაშვებად, თქვენ უნდა გქონდეთ წვდომა MRI ტვინის სკანირების ფაილებზე. მიუხედავად იმისა, რომ ზოგიერთი მათგანი ყოველთვის შეიძლება მოიძებნოს Google– ის სურათებიდან, თითოეული პაციენტისთვის ტვინის სკანირების სხვადასხვა ფენების შესაბამისი სურათებიდან შეიძლება გაკეთდეს საფუძვლიანი და ზუსტი ანალიზი. ამ მონაცემთა ბაზიდან შეგიძლიათ გლიობლასტომით დაავადებული 20 სხვადასხვა პაციენტის ფაილზე წვდომა:
3. ამ პროგრამის ფოკუსირება და სხვადასხვა მეთოდები, რომლებიც ხელმძღვანელობს ამ პროექტს, მოცემულია ამ კვლევაში:
ნაბიჯი 1: დაიწყეთ გრაფიკული ინტერფეისი (GUI)
პირველი ნაბიჯი იქნება გრაფიკული ინტერფეისის, GUI- ს შექმნა და წამოწყება. ეს შეიძლება გაკეთდეს ბრძანების ფანჯარაში სახელმძღვანელოს აკრეფით, Enter- ზე დაჭერით და ახალი GUI შექმნით. ამ ნაბიჯის დასრულების შემდეგ თქვენ შეგიძლიათ დაიწყოთ ისეთი ფუნქციების შექმნა, როგორიცაა ცულები, სტატიკური ტექსტი, ტექსტის რედაქტირება და ღილაკები, რომლებიც გამოჩნდება პროგრამის გაშვების შემდეგ და მომხმარებელს შეუძლია დაუკავშირდეს. ამ ფუნქციების რედაქტირება და მანიპულირება შესაძლებელია ქონების ინსპექტორის საშუალებით, თუმცა ყველაზე მნიშვნელოვანი თვისება, რომელიც უნდა შეიცვალოს ამ ფუნქციების შექმნისას არის Tag სახელი. მნიშვნელოვანია თითოეული ფუნქციის ტეგი სახელის შეცვლა, რადგან ის საშუალებას მოგვცემს შევქმნათ გამორჩეული გამოძახების ფუნქცია. მას შემდეგ რაც კმაყოფილი დარჩებით თქვენი GUI განლაგებით, შეგიძლიათ გადადით DICOM ფაილების ჩატვირთვაზე, რომლებიც ნაჩვენები იქნება GUI ფარგლებში.
ნაბიჯი 2: MRI სურათების ჩატვირთვა და კითხვა MATLAB– ში
DICOM ფაილების ჩატვირთვისთვის, თქვენ უნდა სწორად დაიწყოთ ზარის დაბრუნების ფუნქცია, რომელიც შესრულდება ღილაკზე "Load MRI Image" დაჭერისას. ამის დასრულების შემდეგ, თქვენ უნდა შექმნათ გლობალური ცვლადი, რომელიც გამოსახავს გამოსახულებას სახელურების ღერძებზე, სადაც გსურთ ნახოთ ორიგინალური MRI სურათი. მონაცემთა ბაზიდან გადმოწერილი MRI სკანირების სურათები არის ყველა DICOM ფორმატირებული ფაილი, რომელიც უნდა ჩაიტვირთოს თქვენს MATLAB დირექტორიაში. იპოვეთ ფაილი imgetfile– ის გამოყენებით, რათა გადმოტვირთოთ პროგრამაში. სურათები იკითხება ჩაშენებული MATLAB ფუნქციის "dicomread" გამოყენებით და თითოეული ფაილის პირველი ნედლეული სურათი ჩასმულია GUI მარცხენა ღერძებში imshow- ის გამოყენებით.
ჩამონტაჟებული MATLAB ფუნქცია "dicominfo" ასევე ძალიან სასარგებლოა თითოეული MRI dicom ფაილის ყველა ინფორმაციის მოსაძიებლად. ჩვენ გამოვიყენეთ ეს ფუნქცია პაციენტთა ყველა აღწერითი ინფორმაციის მოსაპოვებლად, როგორიცაა მათი სქესი, ასაკი, წონა და სიმაღლე. ეს ფუნქცია ასევე მოგაწვდით დასტის წესრიგს, რომელიც სასარგებლოა პროგრამის განსახორციელებლად გრაფიკული ინტერფეისის ფარგლებში. ჩვენ შევქმენით ცვლადები თითოეული პაციენტის აღწერითი ინფორმაციისთვის, რომელიც გამოყენებული იქნება GUI– ს გამოვლენის ღილაკის დაჭერისას.
ნაბიჯი 3: სურათის გაფილტვრა
მას შემდეგ, რაც ნედლი სურათის DICOM ფაილი ჩაიტვირთება და იკითხება, გამოსახულება უნდა გადაკეთდეს ნაცრისფერი შტრიხიდან ბინარულ ფორმაში, რომელიც შედგება მხოლოდ შავი და თეთრი პიქსელებისგან. ჩვენ გამოვიყენეთ ფუნქცია "imbinarize", რათა შევქმნათ ორობითი სურათი ნედლი გამოსახულებისგან მაკონტროლებელი ადაპტაციური ზღურბლის ასპექტები მგრძნობიარობის 0,59. ნაგულისხმევი ზღურბლის მგრძნობელობის ფაქტორი, 0.5 დაბალი იყო და ვერ გამოავლინა გამოსახულების ნათელი ბუშტუკები და ლაქები, ამიტომ გავზარდეთ იგი 0.59 -მდე.
შემდეგ ბინარიზებული სურათი დამუშავდება მედიანური ფილტრის საშუალებით ფუნქციის "medfilt2" გამოყენებით, რადგან ბინარიზებული სურათი არის ორგანზომილებიანი. ჩვენ ვაყენებთ თითოეულ გამომავალ პიქსელს, რომ შეიცავდეს მედიანურ მნიშვნელობას 5 x 5 უბანში შესაბამისი პიქსელის ირგვლივ შესასვლელ ბინარიზებულ სურათში. ეს ამცირებს ხმაურს და ინარჩუნებს კიდეებს 5 x 5 კვადრატში თითოეული პიქსელის გარშემო. შემდეგი, ჩვენ ვიყენებთ მოცურების ფანჯარას "strel" - ის გამოყენებით, რათა შევქმნათ დისკის ფორმის ბრტყელი სტრუქტურული ელემენტი, რომლის რადიუსია 2, თითოეული ცენტრალური, წარმოშობის პიქსელის იდენტიფიცირებისთვის თითოეულ დისკზე. ჩვენ გამოვიყენეთ დისკის სტრუქტურირების ელემენტი, რადგან ჩვენ ვაანალიზებთ თითოეულ წრიულ ლაქას და პიქსელს თითოეულ ადგილზე, ამიტომ დისკის ფორმის ელემენტი უფრო სასარგებლოა.
მას შემდეგ, რაც სურათი გაფილტრულია, მისი გაწმენდა შესაძლებელია "დახურვის" ფუნქციის გამოყენებით, სურათის გაფილტრულ თეთრ პიქსელებს შორის შავი ლაქების მოსაშორებლად და ხურავს მის გარშემო არსებულ ყველა ხარვეზს. სრულად დამუშავებული სურათი შეიძლება დაიყოს წინასწარ გამოყოფილი ფიგურის მეორე ქვეპლოტში, რაც შედარების საშუალებას იძლევა ნედლ და გაფილტრულ სურათს შორის.
ნაბიჯი 4: სიმსივნის იზოლაცია ელიფსური ნიღბის საშუალებით
სიმსივნის ნათელი ლაქები შეიძლება იზოლირებული იყოს მთავარი გაფილტრული გამოსახულებისგან წინასწარ გენერირებული ელიფსური ნიღბის საშუალებით. ამ ნიღბის შესაქმნელად, თქვენ უნდა იცოდეთ ორიგინალური, ნედლი MRI სკანირების სურათის ზომა და მისი რიგისა და სვეტის სიგრძის გამოყენებით, შესაბამისად x და y- კოორდინატებით, გამოყოთ ცენტრის კოორდინატები ელიფსურით. ჩვენ ვაყენებთ y ღერძს, როგორც ძირითად ღერძს ცენტრიდან 50 ერთეულის რადიუსით, ხოლო მცირე ღერძს ცენტრიდან 40 ერთეულის რადიუსით.
ჩვენ გამოვიყენეთ MATLAB ფუნქცია "meshgrid", რათა განვახორციელოთ კარტესიული სიბრტყე ორ განზომილებიანი ბადის კოორდინატებით, რომელიც ემყარება ვექტორებში მოთავსებულ კოორდინატებს 1-დან x- ღერძის სიგრძემდე და 1-დან გამოსახულების y- ღერძის სიგრძემდე რა Col არის მატრიცა, სადაც თითოეული სტრიქონი არის x ღერძის ასლი, ხოლო Row არის მატრიცა, სადაც თითოეული სვეტი არის y- ღერძის ასლი. კოორდინატებით Col და Row წარმოდგენილია კარტეზიულ ბადეს აქვს სიგრძის (1: Y_Size) რიგები და სიგრძის (1: X_Size) სვეტები. გამოიყენეთ დეკარტის ქსელის მიერ წარმოქმნილი Col და Row ინდექსები ელიფსის განტოლების დასადგენად, წინასწარ განსაზღვრული რადიუსის და ცენტრის კოორდინატების მიხედვით. ელიფსური მონახაზი ახლა შეიძლება შევსებული იყოს სიმსივნის ლაქებიდან აღმოჩენილი თეთრი პიქსელებით.
წინასწარ გენერირებული ელიფსური ნიღბის გამოყენებით შეგვიძლია გამოვყოთ კონკრეტული სიმსივნე, რომლის გაანალიზებაც გსურთ გაფილტრული გამოსახულებიდან. ელიფსური ნიღაბი ამოიცნობს რომელი ლაქები ლოგიკურად ჯდება ელიფსის მონახაზში და იღებს ამას როგორც გაფილტრული გამოსახულების ლაქას, როგორც სიმსივნედ მისაღები. ფუნქცია "bwareafilt" შემდეგ ფილტრავს ყველა სხვა ობიექტს ამ აღმოჩენილი სიმსივნის მიღმა გამოსახულებიდან. ჩვენ გამოვიყენეთ კონკრეტული ფანჯარა 500 -დან 4000 -მდე ემპირიულად, ყველა სურათის ზომების მიხედვით. შემდეგ ჩვენ გამოვიყენეთ კიდევ ერთი მოცურების ფანჯარა "strel" - ით, როგორც ბრტყელი დისკის ფორმის სტრუქტურული ელემენტი უფრო დიდი უბნის 6 რადიუსით, რომ დავხუროთ ხარვეზები თითოეულ ცენტრალურ თეთრ პიქსელს შორის გამოვლენილ სიმსივნეში. აღმოჩენილი სიმსივნის ლაქა კიდევ უფრო იწმინდება "imclose" - ის გამოყენებით, რათა შემდგომი აღმოფხვრას შავი პიქსელები და შეავსოს ყველა ხვრელი "imfill" - ით. ეს დამუშავებული სიმსივნე შეიძლება გამოისახოს მესამე ქვეპლოტში წინასწარ გამოყოფილ ნაკვეთზე, რათა მოხდეს იზოლირებულ სიმსივნესა და MRI სკანირების ორიგინალ და გაფილტრულ სურათებს შორის შედარება.
ნაბიჯი 5: სიმსივნის აღწერა
ახლა, როდესაც სიმსივნე იზოლირებულია ნიღბით, ის შეიძლება გამოისახოს და გამოისახოს პირვანდელ სურათზე, რათა აჩვენოს მისი ზუსტი მდებარეობა. ამისათვის ჩვენ გამოვიყენეთ ფუნქცია "bwboundaries", რათა მივაკვლიოთ ადრე გამოვლენილ სიმსივნეს კონტურით. ჩვენ განვსაზღვრეთ მონახაზი, რომელიც არ უნდა შეიცავდეს სიმსივნის ობიექტში არსებულ ხვრელებს, როგორც ეს არის გამოკვეთილი. ეს შეიძლება ჩაითვალოს თავდაპირველ, ნედლეულ გამოსახულებაზე, მარყუჟის „for“გამოყენებით, რომელიც ასახავს კონტურს სიმსივნის გარშემო, ხაზის ინდექსების გამოყენებით, ხაზის სიგანე 1.5 პიქსელით. ეს მონახაზი შემდეგ არის გამოსახული ნედლეულ სურათზე, რომელიც აჩვენებს სიმსივნის ზუსტ ზომასა და ადგილსამყოფელს, MRI– ს თავდაპირველ სკანირებასთან შედარებით.
ნაბიჯი 6: სიმსივნის ფიზიკური თვისებების ანალიზი
იზოლირებულ და გამოკვეთილ ადგილს შეუძლია მოგვაწოდოს სასარგებლო ინფორმაცია სიმსივნის ზომის, ფართობისა და ადგილმდებარეობის შესახებ. ჩვენ გამოვიყენეთ "რეგიონის დამცავი" ფუნქცია სიმსივნის თვისებების დასადგენად, რომლებიც ეხება ფართობს, პერიმეტრს, ცენტროიდებს და პიქსელის ინდექსის მნიშვნელობას. ეს პიქსელის ინდექსის მნიშვნელობა გვაძლევს რეალურ სამყაროს ერთეულებს თითოეული სურათის თითოეული პიქსელისთვის, უნიკალური თითოეული სკანირებისთვის. შემდეგ ეს თვისებები შეიძლება გარდაიქმნას მილიმეტრების რეალურ სამყაროში. ემპირიული ინფორმაცია, რომელსაც პროგრამა გვაწვდის, უნიკალურია თითოეული MRI სკანირებისათვის და ძალზედ სასარგებლოა სიმსივნის ზომის, ადგილმდებარეობისა და ტიპის განსაზღვრისათვის, რომელსაც მომხმარებლებს შეუძლიათ გაანალიზონ და ჩართონ გრაფიკული ინტერფეისი.
გირჩევთ:
ვიბრაციის გამოვლენა პიეზოელექტრული შოკის შეხების სენსორული მოდულის გამოყენებით: 6 ნაბიჯი
ვიბრაციების გამოვლენა პიეზოელექტრული შოკის შეხების სენსორული მოდულის გამოყენებით: ამ გაკვეთილში ჩვენ ვისწავლით თუ როგორ უნდა გამოვავლინოთ შოკის ვიბრაცია მარტივი პიეზოელექტრული სენსორის ვიბრაციის მოდულისა და ვიზუინოს გამოყენებით. უყურეთ სადემონსტრაციო ვიდეოს
როგორ გააკეთოთ კარის ზარის შეხება, სხეულის ტემპერატურის გამოვლენა, GY-906, 433MHz Arduino– ს გამოყენებით: 3 ნაბიჯი
როგორ გავხადოთ კარის ზარი, სხეულის ტემპერატურის გამოვლენა, GY-906, 433MHz Arduino– ს გამოყენებით: დღეს ჩვენ გავაკეთებთ კარის შეხების ზარს, ის გამოავლენს თქვენი სხეულის ტემპერატურას. დღევანდელ სიტუაციაში, ძალიან მნიშვნელოვანია ვიცოდეთ, არის თუ არა სხეულის ტემპერატურა ნორმაზე მაღალი, როდესაც ვინმე კოკავს. ეს პროექტი აჩვენებს წითელ შუქს, თუ აღმოაჩენს რაიმე
მარტივი ფერის გამოვლენა OpenCV გამოყენებით: 6 ნაბიჯი
მარტივი ფერის გამოვლენა OpenCV გამოყენებით: გამარჯობა! დღეს მე ვაჩვენებ ღია მეთოდით ცოცხალი ვიდეოდან ფერის გამოვლენის მარტივ მეთოდს OpenCV და პითონის გამოყენებით. ძირითადად, მე უბრალოდ შევამოწმებ, რომ საჭირო ფერი არის ფონური ჩარჩოში თუ არა და OpenCV მოდულების გამოყენებით მე ნიღბავს იმ რეგიონს და
ფერის გამოვლენა პითონში OpenCV გამოყენებით: 8 ნაბიჯი
ფერის გამოვლენა პითონში OpenCV გამოყენებით: გამარჯობა! ეს ინსტრუქცია გამოიყენება იმის გასარკევად, თუ როგორ უნდა ამოიღოთ კონკრეტული ფერი პითონში გამოსახულიდან openCV ბიბლიოთეკის გამოყენებით. თუ თქვენ ახალი ხართ ამ ტექნიკაში, მაშინ არ ინერვიულოთ, ამ სახელმძღვანელოს ბოლოს თქვენ შეძლებთ თქვენი საკუთარი ფერის პროგრამირებას
ობიექტის გამოვლენა W/ Dragonboard 410c ან 820c OpenCV და Tensorflow– ის გამოყენებით .: 4 ნაბიჯი
ობიექტის გამოვლენა W/ Dragonboard 410c ან 820c OpenCV და Tensorflow– ის გამოყენებით .: ეს ინსტრუქცია აღწერს თუ როგორ უნდა დააინსტალიროთ OpenCV, Tensorflow და მანქანათმცოდნეობის ჩარჩოები Python 3.5– ისთვის, რათა გაუშვათ ობიექტის გამოვლენის პროგრამა