Სარჩევი:

ტვინის ყუთი: ნერვული მოცულობის თვალყურის დევნება დროთა განმავლობაში: 20 ნაბიჯი
ტვინის ყუთი: ნერვული მოცულობის თვალყურის დევნება დროთა განმავლობაში: 20 ნაბიჯი

ვიდეო: ტვინის ყუთი: ნერვული მოცულობის თვალყურის დევნება დროთა განმავლობაში: 20 ნაბიჯი

ვიდეო: ტვინის ყუთი: ნერვული მოცულობის თვალყურის დევნება დროთა განმავლობაში: 20 ნაბიჯი
ვიდეო: ჟიულ ვერნი - "80 000 კილომეტრი წყალქვეშ" - აუდიო წიგნი 2024, ივლისი
Anonim
ტვინის ყუთი: ნერვული მოცულობის თვალყურის დევნება დროთა განმავლობაში
ტვინის ყუთი: ნერვული მოცულობის თვალყურის დევნება დროთა განმავლობაში

ადამიანის სიცოცხლის ხანგრძლივობის წინსვლამ გამოიწვია ისეთი დაავადებების განვითარება, რომლებიც ცივილიზაციებმა არ ნახეს ჩვენამდე. მათ შორის, ალცჰაიმერმა დააზარალა დაახლოებით 5.3 მილიონი ცოცხალი მოხუცი ამერიკელი 2017 წელს, ან დაახლოებით 10 ყოველი მოხუცი ამერიკელიდან (https://www.alz.org/facts/) და უამრავი სხვა დემენციით. ბრძოლაში იმის გასაგებად, თუ რა აწუხებს ჩვენს უხუცესებს, ეს კოდი მომავალ მკვლევარებს და ცნობისმოყვარე ცნობისმოყვარე ადამიანებს დროთა განმავლობაში ტვინის მოცულობის თვალყურის დევნის უნარით შეძლებს.

ნაბიჯი 1: ტვინის ყუთის გამოყენება

ტვინის ყუთის გამოყენება
ტვინის ყუთის გამოყენება

ტვინის ყუთის გამოსაყენებლად საჭიროა მხოლოდ შემდეგი:

  • ტვინის MRI სკანირება და ასეთი ფაილების სახელი და ფორმატი (ყველა მათგანს უნდა ჰქონდეს დაახლოებით ერთი და იგივე ზომები)
  • ერთი სკანირების ხანგრძლივობა
  • მანძილი თითოეულ ფენას შორის (MRI სკანირება)
  • პაციენტის სახელი (შეყვანისას არ შეიტანოთ სივრცეები და გთხოვთ დიდი ასოებით დაასახელოთ სახელი და გვარი, მაგალითად: FirstnameLastname)

და აქედან გამომდინარე, ადამიანს აქვს უნარი თვალყური ადევნოს ინდივიდის ტენდენციებს ტვინის მოცულობაში დროთა განმავლობაში. ამრიგად, ალცჰეიმერის ტენდენციების ციფრების თვალყურის დევნება შესაძლებელია ამ პროგრამული უზრუნველყოფის საშუალებით. სიგრძე, რომელიც ჩვენ გამოვიყენეთ, იყო 180 მმ ერთი სკანირების სიგრძისთვის და 5 მმ MRI სკანირებებს შორის მანძილისთვის, საშუალო მაჩვენებლების საფუძველზე.

ამასთან, ტვინის ყუთის გამოყენება არ უნდა იყოს შეზღუდული ამ ერთ ამოცანასთან. თუ მოცემული მასალის ჯვარი სექციები არის ფოტოსურათი, სიმსივნის მსგავსად, მაშინ ამ მოცულობის ცვლილებების ტენდენციები ასევე შეიძლება თვალყური ადევნოს პროგრამულ უზრუნველყოფას.

ნაბიჯი 2: შესავალი: ჯვრის მონაკვეთების ანალიზი

შესავალი: ჯვრის მონაკვეთების ანალიზი
შესავალი: ჯვრის მონაკვეთების ანალიზი

სამგანზომილებიან სტრუქტურაში, ორ განზომილებიან სიბრტყეს, რომლისგანაც შედგება, ჯვარედინი მონაკვეთები ეწოდება. წარმოიდგინეთ, რომ ფურცლების დასტა ქმნის მართკუთხა პრიზმას, მაშინ თითოეული ნაჭერი იქნება ქაღალდის ჯვარი მონაკვეთი. ტვინის წარმოსახვისას ჩვენ ვიყენებთ აზროვნების იმავე კურსს. MRI (მაგნიტურ -რეზონანსული ტომოგრაფია) (იხილეთ ინფორმაცია MRI– ს შესახებ) იჭერს ტვინის ჯვარედინი მონაკვეთებს და ტვინის თითოეულ „ფენაში“განსაზღვრული საზღვრების გამოყენებით, ჩვენ შეგვიძლია ავაშენოთ სტრუქტურა ტვინის მოცულობის მოდელირებისათვის. რა ჩვენ ჯერ უნდა შევქმნათ ფუნქცია, რომ მივაწოდოთ ინფორმაცია ასეთ საზღვრებზე.

ნაბიჯი 3: ფუნქციის დაყენება: LevelCurveTracings.m

ფუნქციის დაყენება: LevelCurveTracings.m
ფუნქციის დაყენება: LevelCurveTracings.m
ფუნქციის დაყენება: LevelCurveTracings.m
ფუნქციის დაყენება: LevelCurveTracings.m
ფუნქციის დაყენება: LevelCurveTracings.m
ფუნქციის დაყენება: LevelCurveTracings.m
ფუნქციის დაყენება: LevelCurveTracings.m
ფუნქციის დაყენება: LevelCurveTracings.m

პირველი, დარწმუნდით, რომ თქვენს კომპიუტერში გადმოწერილია MATLAB_R2017b (გადმოწერეთ აქ) და გახსენით MATLAB. MATLAB ინტერფეისში დააწკაპუნეთ ფანჯრის ზედა მარცხენა კუთხეში არსებულ ღილაკზე, რომელშიც ნათქვამია "ახალი" მუქი ყვითელი პლუს ნიშნით და შეარჩიეთ ვარიანტი "ფუნქცია", რომ გახსნათ რედაქტორის ფანჯარაში მსგავსი სივრცე მესამე სურათი. ჩვენ ყურადღებას გავამახვილებთ პირველი ხაზის შეცვლაზე ფუნქციის დასაყენებლად. სადაც ნათქვამია "outputArg1", ჩაანაცვლეთ "ტვინი", "outputArg2", რომ თქვათ "ხვრელები", "უსათაუროდ 2" - დან "exp2" და "inputArg1" "გამოსახულებაზე" და წაშალეთ "inputArg2". ახლა თქვენ გაქვთ ფუნქცია, რომელსაც უნდა დაარქვათ "exp2", ერთი არგუმენტის "გამოსახულების" აღება და "ტვინის" და "ხვრელების" საზღვრების გამოტანა. ფუნქციის პირველი ხაზი უნდა დაემსგავსოს მეოთხე სურათზე გამოსახულ ხაზს. წაშალეთ ყველა კოდი ამ საწყისი ხაზის ქვემოთ.

ნაბიჯი 4: შეზღუდული ალგორითმის შემუშავება: საზღვრების პოვნა

შეზღუდული ალგორითმის შემუშავება: საზღვრების პოვნა
შეზღუდული ალგორითმის შემუშავება: საზღვრების პოვნა

ჩაწერეთ კოდი ხაზის ქვემოთ. ფუნქციის ეს ნაწილი ასრულებს შემდეგ ხაზს.

  1. ჩატვირთეთ სურათში "სურათი" ცვლადში "mri".
  2. გადააქციეთ "mri" გამოსახულებად, რომელიც შედგება მნიშვნელობებისგან დიაპაზონში რიცხვების ერთამდე და ნულოვანზე (იგივე ბინარიზაცია), დადგენილი ბარიერის მნიშვნელობის საფუძველზე. თუ პიქსელის მნიშვნელობა 0,1 -ის ტოლია ან მეტია, ის არის ერთზე, თუ არა, მაშინ ამ პიქსელის მნიშვნელობა ნულის ტოლია.
  3. მომდევნო ოთხი სტრიქონი 10 სვეტს და სტრიქონებს MRI სკანირების ფენის კიდეებს ნულებად აქცევს, რათა თავიდან იქნას აცილებული არასათანადო მნიშვნელობების წაკითხვა, როგორც საზღვრები (როგორც ეს კოდზე ექსპერიმენტიდან ისწავლა).
  4. ბოლო სტრიქონში, bwboundaries ადგენს ბინარიზებული გამოსახულების "mri" საზღვრებს და ადგენს მას "b" - ს, მასივს ელემენტებით, რომელთა ინდექსები შეესაბამება ერთზე დადგენილ საზღვრებს.

ნაბიჯი 5: შემუშავებული ალგორითმის შემუშავება: გარე შეკრული მასივის გენერირება

შემუშავებული ალგორითმის შემუშავება: გარე შეკრული მასივის გენერირება
შემუშავებული ალგორითმის შემუშავება: გარე შეკრული მასივის გენერირება

მიჰყევით რედაქტორის ფანჯარაში ქვემოთ მოცემულ კოდს სურათზე. კოდის ეს მონაკვეთი ასრულებს შემდეგ სტრიქონს.

  1. იპოვეთ ბინარიზებული გამოსახულების "b" თითოეული რიგის სიგრძე (cellfun იყენებს ფუნქციის სიგრძეს თითოეულ სტრიქონზე).
  2. დააყენეთ "loc" მაქსიმალური სიგრძის შესანახად.
  3. იპოვეთ მაქსიმალური სიგრძის ინდექსი, მითითებული შესანახად "უდიდესი ტრასა" -ში.
  4. იპოვეთ გამოსახულების ზომა "mri", რომელიც შედგება იგივე ზომისგან, როგორც "b" და დააყენეთ "BWsize".
  5. იპოვეთ სურათის მასივში რიგების რაოდენობა, მითითებული "ysize".
  6. იპოვეთ სვეტების რაოდენობა სურათის მასივში, მითითებული "xsize".
  7. შექმენით მასივი "უდიდესიTraceMat", "ysize" ნულიდან "xsize" მატრიცა.
  8. იპოვეთ ეკვივალენტური ინდექსი ხელმოწერილი მნიშვნელობებიდან, რომელიც შეესაბამება იმ ადგილს, სადაც იყო უდიდესი Trace x მნიშვნელობები და y მნიშვნელობები, შეინახეთ ვექტორ "lindex" - ში.
  9. ნულოვანი მატრიცაში, "largeTraceMat", გადააქციეთ ინდექსის ის ელემენტები, რომლებიც შეესაბამება "lindex" - ში ელემენტებად შენახულ ინდექსის მნიშვნელობებს.

ამრიგად, ლოგიკურ მასივს "largeTraceMat" აქვს მოცემული ტვინის სკანირების განივი მონაკვეთის ყველაზე დიდი შემოსაზღვრული რეგიონი, რომელიც გამოსახულია ნულოვანი ფონზე

ნაბიჯი 6: შემუშავებული ალგორითმის შემუშავება: ცენტრ პოინტთან მუშაობა

შეზღუდული ალგორითმის შემუშავება: ცენტრ პოინტთან მუშაობა
შეზღუდული ალგორითმის შემუშავება: ცენტრ პოინტთან მუშაობა

შემდეგი, ჩვენ უნდა შევამოწმოთ, არის თუ არა ჯვარი ერთზე მეტი რეგიონისგან (უდიდესი). უმსხვილესი რეგიონის ცენტროიდების განლაგების შესამოწმებლად, ჩვენ შეგვიძლია დავინახოთ არის თუ არა ერთი მომიჯნავე რეგიონი, რომელიც გამოიღებს უფრო ცენტრირებულ ცენტროიდს, თუ მრავალი რეგიონის შესაძლებლობა.

  1. გამოიყენეთ "regionProps" ინფორმაციის მოსაძებნად ცენტროიდებზე, სტრუქტურის მასივის ტოლი "tempStruct"
  2. ფორმა მასივი "ცენტროიდები" ვერტიკალურად შეკრული ველიდან "ცენტროიდული" მონაცემებით
  3. მიიღეთ "ცენტროიდების" მეორე სვეტის მნიშვნელობები (ჰორიზონტალური განზომილების კოორდინატები)
  4. გაუშვით ფილტრი, რომ შეამოწმოთ ცენტროდის ჰორიზონტალურ ცენტრთან შესაბამისობა

ნაბიჯი 7: შემუშავებული ალგორითმის შემუშავება: როდესაც ცენტროიდი არ არის ცენტრირებული

შეზღუდული ალგორითმის შემუშავება: როდესაც ცენტროიდი არ არის ცენტრირებული
შეზღუდული ალგორითმის შემუშავება: როდესაც ცენტროიდი არ არის ცენტრირებული

იმ სცენარში, რომ უმსხვილესი კვალი რეგიონის ცენტროიდი არ არის ორიენტირებული, ჩვენ გავდივართ შემდეგ ნაბიჯებს. როგორც ჩვენ შევამჩნიეთ მაგნიტურ -რეზონანსული ტომოგრაფიის სკანირებაში, ტენდენცია იყო, რომ ტვინის ნახევარსფეროები გამოსახული ყოფილიყო მონაკვეთზე, როდესაც არ იყო მიმდებარე, ამიტომ ჩვენ ვაგრძელებთ მეორე უმსხვილესი კვალის შედგენას ყველაზე დიდ კვალთან ერთად "უდიდესიTraceMat" - ში.

  1. დააყენეთ მიკვლეული მატრიცა ახალ ცვლადზე "b2"
  2. ცარიელი მატრიცის ინიციალიზაცია "b2", ნაკრები ინდექსირებული "loc" - ით
  3. შექმენით პირობითი, როდესაც ცენტროიდი არ არის ცენტრირებული (ანუ მრავალჯერადი რეგიონის ფენა)
  4. თითოეული რიგისთვის ახალი კვალის ზომის დაყენება (traceSize2)
  5. დააყენეთ "loc2", რომ იპოვოთ ინდექსები, სადაც საზღვრები არსებობს
  6. "B2" - ში "loc2" - ით განსაზღვრული უჯრედები ტოლი იყოს "უდიდესი Trace2" - ის
  7. გადაიყვანეთ ხელმოწერები ინდექსებად, მითითებული "lindex" - ზე
  8. შეცვალეთ "lindex" - ის შესაბამისი ელემენტები "უდიდეს TraceMat" - ში 1 -ზე
  9. ინიციალიზაცია ცარიელი მატრიცა "b2", კომპლექტი ინდექსირებული "loc2" - ით

ნაბიჯი 8: შეზღუდული ალგორითმის შემუშავება: ხვრელების ჩარევა

შეზღუდული ალგორითმის შემუშავება: ხვრელების ჩარევა
შეზღუდული ალგორითმის შემუშავება: ხვრელების ჩარევა

ხვრელებთან ურთიერთობისას, "b2" - ში შენახული მნიშვნელობები ინახავს სხვა სტრუქტურებს, გარდა ყველაზე დიდი კვალისა და მათი შედგენა "უდიდესიTraceMat" - ის შევსებულ ფორმაზე გამოავლენს სად არის ხვრელები ტვინის რეგიონებში.

  1. შექმენით მასივი "fillMat", რომელიც არის შევსებული "უდიდესიTraceMat" სახით
  2. შექმენით მასივი "interferenceMat", "ysize" ნულიდან "xsize" მასივით
  3. შექმენით მასივი "interferenceloc", რომ შეინახოთ მნიშვნელობები "b2" - დან, ვერტიკალურად შეკრული
  4. შექმენით მასივი "lindex" ინდექსების შესანახად, რომლებიც შეესაბამება "interferenceloc"
  5. "InterferenceMat" - ის ინდექსებისთვის, რომლებიც შეესაბამება "lindex" - ს, დააყენეთ მნიშვნელობა 1, რაც ქმნის სხვადასხვა შეზღუდულ რეგიონს

ნაბიჯი 9: შემუშავებული ალგორითმის შემუშავება: ხვრელების განთავსება, ტვინის საზღვრების დასრულება და ხვრელების საზღვრები

შეზღუდული ალგორითმის შემუშავება: ხვრელების განთავსება, ტვინის საზღვრების დასრულება და ხვრელების საზღვრები
შეზღუდული ალგორითმის შემუშავება: ხვრელების განთავსება, ტვინის საზღვრების დასრულება და ხვრელების საზღვრები
  1. დააყენეთ მასივი "tempMat" უდრის "interferenceMat" პლუს "fillMat", რითაც მატრიცის თითოეული მნიშვნელობა დაემატება ერთმანეთს
  2. დააყენეთ მასივი "holeLoc" ინდექსების ტოლი, სადაც "interferenceMat" და "fillMat" ორივე ერთის ტოლი იყო
  3. დააყენეთ "holeMat", როგორც ზომების ნულოვანი მატრიცა "ysize" x "xsize"
  4. დააყენეთ ინდექსები "holeMat" - ში, რომლებიც ტოლია "holeLoc" - ის
  5. დააყენეთ „ტვინი“„უდიდესი TraceMat“- ზე
  6. დააყენეთ "ხვრელები" "holeMat"

იმ აღმოჩენით, სადაც დამატებული მატრიცების მნიშვნელობები 2 -ის ტოლი იყო, ხვრელების ადგილები ადვილად იყო უზრუნველყოფილი და გამოსახული იყო ცარიელ მატრიცაზე.

ნაბიჯი 10: მონაცემების ჩაწერა: ფუნქცია PatientFiles.m

აღრიცხვის მონაცემები: ფუნქცია PatientFiles.m
აღრიცხვის მონაცემები: ფუნქცია PatientFiles.m
აღრიცხვის მონაცემები: ფუნქცია PatientFiles.m
აღრიცხვის მონაცემები: ფუნქცია PatientFiles.m
აღრიცხვის მონაცემები: ფუნქცია PatientFiles.m
აღრიცხვის მონაცემები: ფუნქცია PatientFiles.m
აღრიცხვის მონაცემები: ფუნქცია PatientFiles.m
აღრიცხვის მონაცემები: ფუნქცია PatientFiles.m

ბოლო ფუნქციის დაყენების მსგავსად, დააწკაპუნეთ ფანჯრის ზედა მარცხენა კუთხეში არსებულ ღილაკზე, რომელიც ამბობს "ახალი" თამამი ყვითელი პლუს ნიშნით და აირჩიეთ ვარიანტი "ფუნქცია", რომ გახსნათ რედაქტორის ფანჯარაში სივრცე ჰგავს მესამე სურათზე. პირველ სტრიქონში წაშალეთ გამომავალი მატრიცა და ჩაანაცვლეთ მხოლოდ „გამომავალით“, შეცვალეთ „უსათაურო 2“„პაციენტის ფაილებით“, წაშალეთ ყველა შემავალი არგუმენტი და მიჰყევით კოდის ხაზის მეოთხე სურათზე მითითებულ ფორმატირებას. ამ ფუნქციის პირველი ხაზი უნდა ემთხვეოდეს სურათის ფორმატირებას.

ნაბიჯი 11: მონაცემების შეტანა ფაილებში

მონაცემების შეტანა ფაილებში
მონაცემების შეტანა ფაილებში
მონაცემების შეტანა ფაილებში
მონაცემების შეტანა ფაილებში

იმისათვის, რომ შევქმნათ ფაილი ძირითადი ფუნქციის მიერ ნაპოვნი მონაცემების შესასწავლად (ჯერ არ არის აღწერილი), ჩვენ უნდა შევასრულოთ ეს ნაბიჯები (როგორც ეს კოდითაა დადგენილი ხაზით).

  1. შეამოწმეთ არის პაციენტის სახელის შეყვანილი სტრიქონი.
  2. თუ ეს არ არის სტრიქონი, აჩვენეთ პაციენტის სახელის შეყვანა უნდა იყოს სტრიქონი.
  3. დაასრულეთ if განცხადება (შეცდომის თავიდან აცილება).
  4. შექმენით სტრიქონის განცხადება "DateandTime", რომელიც მისცემს შემდეგ ფორმატს: საათი: წუთი-თვე/დღე/წელი.
  5. დააყენეთ ცვლადი ფაილის სახელი შემდეგზე: პაციენტის სახელი. მ.

ახლა გადავიდეთ ფუნქციის შემდეგ მონაკვეთზე: არსებობს თუ არა ამ სახელის ფაილი?

1) დავუშვათ, რომ ამ სახელის ფაილი უკვე არსებობს:

  1. გაუშვით ფაილი, რომ მიიღოთ მნიშვნელობები წარსულის რიგში
  2. დაამატეთ მიმდინარე თარიღის "თარიღი და დრო" მონაცემები, როგორც ახალი უჯრედი x მნიშვნელობების უჯრედულ მასივში (ინდექსის დასასრული+1)
  3. დაამატეთ მიმდინარე "brainVolume" მნიშვნელობა, როგორც ახალი უჯრედი y მნიშვნელობების უჯრედულ მასივში (ინდექსის დასასრული+1)
  4. შეინახეთ ფაილში ჩატვირთული მიმდინარე ცვლადები.

2) დავუშვათ, რომ ამ სახელის ფაილი არ არსებობს:

  1. შექმენით ახალი ფაილი ცვლადში "პაციენტის სახელი" შენახული სახელით
  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– ის კოდიდან, ფუნქციონირებს ძირითადი კოდის ქვესახეობ ფიგურებს შორის არსებული ხარვეზების დახურვისას, როდესაც იქმნება MRI სურათებისა და ტვინის შრეების ფიგურები. Subplotclose.m გამოიყენება ქვეპლოტის ფუნქცია, რომელიც არეგულირებს მოცემული ქვენაწერების პოზიციას, რათა ერთმანეთთან მჭიდროდ შეესაბამებოდეს უფრო გრძელი განზომილების ასპექტში. მაგალითად, თუ კოდი გულისხმობს 7 x 3 მატრიცას, სტრიქონები მოთავსდება მჭიდროდ, რადგან მწკრივის განზომილება უფრო გრძელია. თუ კოდი გულისხმობს 3 x 7 მატრიცას, სვეტები მოთავსდება მჭიდროდ, რიგებში ხარვეზებით, როგორც ეს ნაჩვენებია ჩვენი ძირითადი კოდის ფიგურებში.

ნაბიჯი 14: მთავარი კოდი: ყველაფრის გასუფთავება და შეყვანის მოთხოვნა

მთავარი კოდი: ყველაფრის გასუფთავება და შეყვანის მოთხოვნა
მთავარი კოდი: ყველაფრის გასუფთავება და შეყვანის მოთხოვნა

ძირითადი კოდის დასაწყებად, დააწკაპუნეთ იმავე ღილაკზე, რომელშიც ნათქვამია "ახალი" ფანჯრის ზედა მარცხენა კუთხეში და შეარჩიეთ "სკრიპტი" ნაცვლად "ფუნქციის" წინა ნაწილებიდან. ჩაწერეთ კოდი, როგორც ნაჩვენებია სურათზე, რედაქტორის ფანჯარაში. კოდის ხაზები ასრულებს შემდეგ ამოცანებს თანმიმდევრობით:

  1. დახურეთ ყველა გახსნილი ფაილი, გარდა 0, 1 და 2.
  2. დახურეთ ყველა ფიგურის ფანჯარა.
  3. გაასუფთავეთ ყველა ცვლადი სამუშაო სივრცეში.
  4. გაასუფთავეთ ბრძანების ფანჯარა.
  5. ჩვენება ბრძანების ფანჯარაში: გთხოვთ შეიყვანოთ შემდეგი ზომები MRI სკანირებისთვის:
  6. ბრძანების ფანჯარაში ახალ სტრიქონზე ჰკითხეთ: ერთი სკანირების სიგრძე მილიმეტრებში:. მომხმარებლის მიერ გაცემული პასუხი დაყენდება ცვლადზე "lengthMM".
  7. ახალ ხაზზე ჰკითხეთ: მანძილი MRI სკანირებს შორის მილიმეტრებში:. მომხმარებლის მიერ გაცემული პასუხი დაყენდება ცვლადზე "ZStacks".

ნაბიჯი 15: მთავარი კოდი: სურათების სურათების დამუშავება

მთავარი კოდი: სურათების სურათების დამუშავება
მთავარი კოდი: სურათების სურათების დამუშავება
მთავარი კოდი: სურათების დამუშავება სურათების მიხედვით
მთავარი კოდი: სურათების დამუშავება სურათების მიხედვით

ამ განყოფილებაში კოდი ატვირთავს სურათებს (შედგება ტვინის განივი მონაკვეთების MRI სკანირებისაგან) და შეინახავს თითოეული გამოსახულების ფაილის სახელებს ცვლადში "ბაზა" და აჩვენებს MRI- ს თითოეულ სკანირებას. გთხოვთ მიჰყევით სურათზე მოცემულ კოდს, რომელიც აკეთებს შემდეგს:

  1. შექმენით სტრუქტურული მასივი "BrainImages", რომელიც შეიცავს ინფორმაციას ყველა საქაღალდეში მიმდინარე საქაღალდეში, რომელიც შეესაბამება MRI _ () სახელის ფორმატს. Png
  2. დააყენეთ ცვლადი "სურათების რაოდენობა" სტრუქტურის მასივში "BrainImages" ელემენტების რაოდენობის ტოლი
  3. ფიგურის ფანჯრის გახსნა 1
  4. დააყენეთ ციკლის მარყუჟი ფაილში დათვლილი სურათების რაოდენობისათვის
  5. თითოეული მარყუჟისთვის "CurrentImage" არის თითოეული ფაილის შესაბამისი სახელი MRI_i.png, გამეორების ნომერი "i"
  6. შექმენით 3 x 7 ქვეპლოტი, რომ აჩვენოთ 19 სურათი, რომლებიც უნდა ჩატვირთოს "imshow" - ით
  7. თითოეული სურათის ჩვენება სხვა ელემენტის სახით ქვეპლოტის ფიგურის ფანჯარაში
  8. დაასახელეთ თითოეული ქვეპლოტის ელემენტი Level_, სადაც ცარიელია for მარყუჟის გამეორების ნომერი.
  9. დაასრულეთ for მარყუჟი (შეცდომების თავიდან აცილება)

ეს აჩვენებს ფიგურა 1 -ში ყველა MRI სკანირება ნედლი ფორმით 3 x 7 კონფიგურაციით x ორიენტაციაში ხარვეზების გარეშე.

ნაბიჯი 16: მთავარი კოდი: Padding

მთავარი კოდი: Padding
მთავარი კოდი: Padding

შევსებით, ჩვენ თავიდან ავიცილებთ გამოსახულების მცირე შეუსაბამობის საკითხს, რამაც შეიძლება გამოიწვიოს შეცდომა განზომილების შეუსაბამობის შემთხვევაში, თუ ერთი სურათი ოდნავ აღემატება მეორეს.

  1. ფიგურის ფანჯრის გახსნა 2
  2. ჩატვირთეთ სურათის მატრიცა MRI_1-p.webp" />
  3. იპოვეთ სურათის მატრიცის ზომა და დააყენეთ "OriginalXPixels" (რიგების რაოდენობისთვის) და "OriginalYPixels" (სვეტების რაოდენობისთვის)
  4. დააყენეთ მატრიცა "BrainMat", რომ შედგებოდეს ყველა ნულისგან 20 მეტი სტრიქონით და 20 მეტი სვეტით თითოეულ სიბრტყეზე და 19 ჯვარი მონაკვეთი, თითო თითო სიბრტყეზე.
  5. შექმენით "HolesMat", რომელიც შედგება ნულოვანი სამგანზომილებიანი მასივისგან, რათა შემდგომში ხვრელის კოორდინატები შეიყვანოთ
  6. შექმენით "zeroMat" პედის ზომის პლუს ოცი რიგი და ოცი სვეტი, ნულოვანი ორგანზომილებიანი მასივი.

ნაბიჯი 17: მთავარი კოდი: საზღვრების დადგენა

მთავარი კოდი: საზღვრების განსაზღვრა
მთავარი კოდი: საზღვრების განსაზღვრა
მთავარი კოდი: საზღვრების განსაზღვრა
მთავარი კოდი: საზღვრების განსაზღვრა
  1. დააყენეთ მარყუჟი, რომ გადავიდეს ადრე დატვირთული თითოეული სურათის მონაცემები
  2. სურათების დამუშავების იმავე წესით ადრე, "CurrentImage" იტვირთება ფაილები "MRI_i.png" - ით, სადაც i არის გამეორების ნომერი
  3. გაუშვით თითოეული სურათი ადრე დამუშავების ფუნქციის "LevelCurveTracings2.m" მეშვეობით
  4. იპოვეთ გამომავალი "ტვინის" ზომა, დააყენეთ რიგების რაოდენობა "Currentrow" და სვეტების რაოდენობა "Currentcolumns"
  5. დააყენეთ "CurrentMat" ნულოვანი მატრიცაზე განზომილებებით "Currentrow" და "Currentcolumns"
  6. მოათავსეთ მონაცემები "ტვინიდან" "CurrentMat" - ში, ყველა მხრიდან 10 რიგის ზღვარი
  7. შექმენით ზომების ქვეპლოტი 3 x 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. შექმენით მარყუჟის ციკლი თითოეული ფენის გავლით
  2. იპოვეთ ერთეულების რაოდენობა მოცემულ ფენაში
  3. გადააკეთეთ z კოორდინატები მნიშვნელობებში მნიშვნელობებად, რომლებიც გაფართოვებულია სათანადო თანაფარდობით, დაყენებულია "tempz", სვეტის ვექტორი
  4. დაამატეთ z მნიშვნელობა დონის მრუდისთვის ვექტორს z

ამით z კოორდინატები სწორად არის მორგებული.

ნაბიჯი 19: მთავარი კოდი: X და Y კოორდინატების განსაზღვრა

მთავარი კოდი: X და Y კოორდინატების განსაზღვრა
მთავარი კოდი: X და Y კოორდინატების განსაზღვრა

ახლა განვსაზღვროთ თითოეული წერტილის x და y პოზიციები საზღვრებში.

  1. ინიციალიზაცია "xBrain" როგორც ცარიელი მასივი
  2. ინიციალიზაცია "yBrain" როგორც ცარიელი მასივი
  3. დააყენეთ მარყუჟის for loop თითოეული სურათის ჩატვირთვისას
  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. მიიღეთ მიმდინარე თარიღი და დრო საათით და დააყენეთ "თარიღი და დრო"
  9. დარეკეთ ფუნქცია "პაციენტის ფაილები" მონაცემების გამოსათვლელად შესასვლელად და გამოსახვისთვის

აქედან მეორე და მესამე სურათები უნდა აჩვენებდეს გამოჩენილ ფიგურებს, ხოლო მეოთხე სურათი უნდა გამოჩნდეს ბრძანების ფანჯარაში.

გირჩევთ: