Satura rādītājs:

Smadzeņu kaste: neironu apjoma izsekošana laika gaitā: 20 soļi
Smadzeņu kaste: neironu apjoma izsekošana laika gaitā: 20 soļi

Video: Smadzeņu kaste: neironu apjoma izsekošana laika gaitā: 20 soļi

Video: Smadzeņu kaste: neironu apjoma izsekošana laika gaitā: 20 soļi
Video: Эффект Ганцфельда в паранормальной квартире 2024, Jūlijs
Anonim
Smadzeņu kaste: neironu apjoma izsekošana laika gaitā
Smadzeņu kaste: neironu apjoma izsekošana laika gaitā

Virzība uz garāku cilvēka mūža robežu ir izraisījusi tādu slimību pieaugumu, kuras civilizācijas pirms mums nav redzējušas. Starp tiem Alcheimera slimība 2017. gadā skāra aptuveni 5, 3 miljonus dzīvojošu vecāka gadagājuma amerikāņu jeb aptuveni 1 no 10 gados vecākiem amerikāņiem (https://www.alz.org/facts/) un neskaitāmiem citiem ar demenci. Lai palīdzētu cīņā, lai saprastu, kas nomāc mūsu vecākos, šis kods nākamajiem pētniekiem un zinātkārajiem ļaudīm nodrošinās iespēju laika gaitā izsekot smadzeņu apjomam.

1. darbība. Brain Box izmantošana

Brain Box izmantošana
Brain Box izmantošana

Lai izmantotu smadzeņu kasti, ir nepieciešams tikai šāds:

  • Smadzeņu MRI skenēšana un šādu failu nosaukums un formāts (tiem visiem jābūt aptuveni vienādiem izmēriem)
  • Vienas skenēšanas ilgums
  • Attālums starp katru slāni (MRI skenēšana)
  • Pacienta vārds (ievadot, neiekļaujiet atstarpes un, lūdzu, rakstiet vārdu un uzvārdu ar lielajiem burtiem, piemēram: Vārds Uzvārds)

Un no tā var spēt izsekot indivīdu smadzeņu apjoma tendencēm laika gaitā. Tādējādi šī programmatūra var izsekot Alcheimera slimības tendenču skaitļiem. Garums, ko izmantojām izmēģinājumā, bija 180 mm vienas skenēšanas garumam un 5 mm attālumam starp MRI skenēšanu, pamatojoties uz vidējiem skaitļiem.

Tomēr smadzeņu lodziņa izmantošana nav jāierobežo tikai ar šo vienu uzdevumu. Ja noteiktas cietvielas šķērsgriezumi ir fotogrāfija, piemēram, audzējs pats par sevi, to apjoma izmaiņu tendences var arī izsekot programmatūrā.

2. darbība. Ievads: šķērsgriezumu analīze

Ievads: Šķērsgriezumu analīze
Ievads: Šķērsgriezumu analīze

Trīsdimensiju struktūrās divdimensiju plaknes, no kurām tās sastāv, sauktu par šķērsgriezumiem. Iedomājieties, ka papīra kaudze veido taisnstūra prizmu, un tad katrs papīra gabals būs papīra šķērsgriezums. Iedomājoties smadzenes, mēs izmantojam to pašu domu gājienu. MRI (magnētiskās rezonanses attēlveidošana) (sk. Informāciju par MRI) uztver smadzeņu šķērsgriezumus, un, izmantojot katrā sniegtajā smadzeņu "slānī" noteiktās robežas, mēs varam izveidot struktūru, lai modelētu un atrastu smadzeņu tilpumu. Tomēr mums vispirms ir jāizveido funkcija, lai sniegtu informāciju par šādām robežām.

3. darbība: funkcijas iestatīšana: LevelCurveTracings.m

Funkcijas iestatīšana: LevelCurveTracings.m
Funkcijas iestatīšana: LevelCurveTracings.m
Funkcijas iestatīšana: LevelCurveTracings.m
Funkcijas iestatīšana: LevelCurveTracings.m
Funkcijas iestatīšana: LevelCurveTracings.m
Funkcijas iestatīšana: LevelCurveTracings.m
Funkcijas iestatīšana: LevelCurveTracings.m
Funkcijas iestatīšana: LevelCurveTracings.m

Vispirms pārliecinieties, vai datorā ir lejupielādēts MATLAB_R2017b (lejupielādējiet šeit), un atveriet MATLAB. MATLAB saskarnē loga augšējā kreisajā stūrī noklikšķiniet uz pogas ar uzrakstu “Jauns” ar treknrakstu dzeltenā pluszīme un atlasiet opciju “funkcija”, lai redaktora logā atvērtu vietu, kas līdzinās tai trešā bilde. Mēs koncentrēsimies uz pirmās rindas maiņu, lai iestatītu funkciju. Ja tas saka "outputArg1", nomainiet to ar "brain", "outputArg2", lai teiktu "caurumi", "untitled2" uz "exp2" un "inputArg1" uz "image", un izdzēsiet "inputArg2". Tagad jums ir jāizsauc funkcija, izmantojot "exp2", ņemot vienu argumentu "attēls" un izvadot "smadzeņu" un "caurumu" robežas. Funkcijas pirmajai rindai vajadzētu atgādināt līniju, kas attēlota ceturtajā attēlā. Izdzēsiet visu kodu zem šīs sākotnējās rindas.

4. solis: saistītā algoritma izstrāde: robežu atrašana

Saistītā algoritma izstrāde: robežu atrašana
Saistītā algoritma izstrāde: robežu atrašana

Ierakstiet kodu šādi zem rindas. Šī funkcijas sadaļa veic šādu rindu pa rindai.

  1. Ielādējiet attēlu "attēls" mainīgajā "mri".
  2. Pārvērtiet “mri” par attēlu, kas sastāv no vērtībām skaitļu diapazonā līdz vieniem un nullēm (pazīstams arī kā binarizējošs), pamatojoties uz noteikto sliekšņa vērtību. Ja pikseļa vērtība ir vienāda ar vai lielāka par 0,1, tā tiek iestatīta uz vienu, ja nē, šī pikseļa vērtība ir iestatīta uz nulli.
  3. Šīs četras rindas 10 kolonnas un rindas MRI skenēšanas slāņa malās pārvērš nullēs, lai izvairītos no nepareizu vērtību nolasīšanas, veidojot robežas (kā tika mācīts, eksperimentējot ar kodu).
  4. Pēdējā rindiņā bwboundaries izseko binarizētā attēla "mri" robežas un nosaka to vienādu ar "b" - masīvu ar elementiem, kuru indeksi atbilst robežām, kas iestatītas uz vienu.

5. darbība: saistītā algoritma izstrāde: ārējās masīvas ģenerēšana

Saistītā algoritma izstrāde: ārējās masīvas ģenerēšana
Saistītā algoritma izstrāde: ārējās masīvas ģenerēšana

Sekojiet līdzi redaktora logā ar šādu kodu attēlā. Šī koda sadaļa veic šādu rindu pa rindai.

  1. Atrodiet katras binarizētā attēla "b" rindas garumu (Cellfun katrai rindai piemēro funkcijas garumu).
  2. Iestatiet "loc", lai saglabātu maksimālos garumus.
  3. Atrodiet maksimālā garuma indeksu, kas ir iestatīts glabāšanai lielākajā trasē.
  4. Atrodiet attēla "mri" izmēru, kas sastāv no tāda paša izmēra kā "b", un iestatiet uz "BWsize".
  5. Atrodiet rindu skaitu attēla masīvā, iestatiet uz "ysize".
  6. Atrodiet kolonnu skaitu attēla masīvā, iestatiet uz "xsize".
  7. Izveidojiet masīvu "suurinTraceMat", "ysize" pēc "xsize" nulles matricas.
  8. Atrodiet līdzvērtīgo indeksu no parakstītajām vērtībām, kas atbilst lielākajām Trase x vērtībām un y vērtībām, saglabājiet vektorā "lindex".
  9. Nulles matricā "legnagyobbTraceMat" pārvērš par elementiem indeksus, kas atbilst indeksa vērtībām, kas tiek saglabātas kā elementi "lindex".

Tādējādi loģiskajam masīvam "legnagyobbTraceMat" ir lielākais noteiktā smadzeņu skenēšanas šķērsgriezuma ierobežotais apgabals, kas attēlots kā tāds, kurā ir nulles fons

6. darbība: saistītā algoritma izstrāde: darbs ar centra punktu

Saistītā algoritma izstrāde: darbs ar centra punktu
Saistītā algoritma izstrāde: darbs ar centra punktu

Tālāk mums jāpārbauda, vai šķērsgriezums sastāv no vairāk nekā viena reģiona (lielākais). Pārbaudot lielākā reģiona centroid izlīdzināšanu, mēs varam redzēt, vai ir viens blakus esošs reģions, kas dotu centrētāku centrālo daļu, vai vairāku reģionu iespēja.

  1. Izmantojiet "regionProps", lai atrastu informāciju par esošajiem centraidiem, kas ir vienādi ar struktūras masīvu "tempStruct"
  2. Veidojiet masīvu "centridi" ar datiem no lauka "centroid", kas ir savienoti vertikāli
  3. Ņemiet "kolonnas" otrās slejas vērtības (horizontālās dimensijas koordinātas)
  4. Palaidiet filtru, lai pārbaudītu centrālo izlīdzinājumu ar horizontālo centru

7. darbība. Saistītā algoritma izstrāde: ja centrālais nav centrēts

Saistītā algoritma izstrāde: ja Centroid nav centrēts
Saistītā algoritma izstrāde: ja Centroid nav centrēts

Scenārijā, ka lielākā izsekošanas reģiona centrālais punkts nav centrēts, mēs veicam šādas darbības. Kā mēs novērojām MRI skenēšanā, bija tendence, ka smadzeņu puslodes ir attēlotas šķērsgriezumā, kad tās nav blakus, tāpēc mēs turpinām attēlot otro lielāko izsekotni kopā ar lielāko izsekotni "legnagyobbTraceMat"

  1. Iestatiet izsekoto matricu uz jaunu mainīgo "b2"
  2. Inicializējiet tukšo matricu "b2" ar kopu, kas indeksēta ar "loc"
  3. Izveidojiet nosacījumu, ja centrālais centrs nav centrā (t.i., vairāku reģionu slānis)
  4. Iestatiet jaunu izsekošanas lielumu, kas jāatrod katrai rindai (traceSize2)
  5. Iestatiet "loc2", lai atrastu indeksus, kuros ir robežas
  6. Ļaujiet šūnām, kas norādītas ar "loc2" sadaļā "b2", būt vienādām ar "suurinTrace2"
  7. Pārvērst apakšindeksus indeksos, iestatīt uz "lindex"
  8. Nomainiet elementus, kas atbilst "lindex" sadaļā "legnagyobbTraceMat" uz 1
  9. Inicializējiet tukšo matricu "b2" ar kopu, kas indeksēta ar "loc2"

8. solis: saistītā algoritma izstrāde: caurumu iejaukšanās

Saistītā algoritma izstrāde: caurumu iejaukšanās
Saistītā algoritma izstrāde: caurumu iejaukšanās

Strādājot ar caurumiem, "b2" saglabātās vērtības izsekoja citām struktūrām, nevis lielākajām pēdām, un, uzzīmējot tās aizpildītā "legnagyobbTraceMat" formā, tiks atklāts, kur smadzeņu reģionos ir caurumi.

  1. Izveidojiet masīvu "fillMat", kas ir aizpildīts kā "suurinTraceMat"
  2. Izveidojiet masīvu "interferenceMat", "ysize" ar "xsize" nulles masīvu
  3. Izveidojiet masīvu "interferenceloc", lai saglabātu vērtības no "b2", savienotas vertikāli
  4. Izveidojiet masīvu "lindex", lai saglabātu indeksus, kas atbilst "interferenceloc"
  5. Indeksiem "interferenceMat", kas atbilst "lindex", iestatiet vērtību 1, izveidojot citu ierobežotu reģionu

9. darbība: saistītā algoritma izstrāde: caurumu atrašana, smadzeņu robežu un caurumu robežu pabeigšana

Saistītā algoritma izstrāde: caurumu atrašana, smadzeņu robežu un caurumu robežu pabeigšana
Saistītā algoritma izstrāde: caurumu atrašana, smadzeņu robežu un caurumu robežu pabeigšana
  1. Iestatiet masīvu "tempMat" vienādu ar "interferenceMat" plus "fillMat", tādējādi pievienojot katru matricas vērtību viens otram
  2. Iestatiet masīvu "holeLoc", kas vienāds ar indeksiem, kur "interferenceMat" un "fillMat" abi bija vienādi ar vienu
  3. Iestatiet "holeMat" kā nulles matricu "ysize" x "xsize"
  4. Iestatiet indeksus "holeMat", kas ir vienādi ar "holeLoc", kā vienus
  5. Iestatīt "smadzenes" uz "suurinTraceMat"
  6. Iestatiet “caurumus” uz “holeMat”

Atklājot, ka pievienoto matricu vērtības bija vienādas ar 2, caurumu vietas bija viegli nostiprinātas un uzzīmētas tukšā matricā.

10. darbība: datu reģistrēšana: funkcija PatientFiles.m

Datu reģistrēšana: funkcija PatientFiles.m
Datu reģistrēšana: funkcija PatientFiles.m
Reģistrācijas dati: funkcija PatientFiles.m
Reģistrācijas dati: funkcija PatientFiles.m
Reģistrācijas dati: funkcija PatientFiles.m
Reģistrācijas dati: funkcija PatientFiles.m
Reģistrācijas dati: funkcija PatientFiles.m
Reģistrācijas dati: funkcija PatientFiles.m

Līdzīgi kā pēdējās funkcijas iestatīšanā, noklikšķiniet uz pogas loga augšējā kreisajā stūrī ar uzrakstu “Jauns” ar treknu dzeltenu pluszīmi un atlasiet opciju “funkcija”, lai redaktora logā atvērtu vietu, tas atgādina trešo attēlu. Pirmajā rindā izdzēsiet izvades matricu un aizstājiet to tikai ar "output", aizstājiet "untitled2" ar "patientFiles", izdzēsiet visus ievades argumentus un tā vietā ievērojiet formatējumu, kas norādīts koda rindas ceturtajā attēlā. Šīs funkcijas pirmajai rindai jāatbilst attēla formatējumam.

11. darbība: datu reģistrēšana failos

Datu reģistrēšana failos
Datu reģistrēšana failos
Datu reģistrēšana failos
Datu reģistrēšana failos

Lai iestatītu failu, lai reģistrētu galvenās funkcijas atrastos datus (kas vēl nav aprakstīti), mums ir jāveic šīs darbības (kā noteikts kodā pa rindām).

  1. Pārbaudiet, vai ievade pacientamName ir virkne.
  2. Ja tā nav virkne, parādiet, ka pacienta nosaukuma ievadei jābūt virknei.
  3. Pabeidziet paziņojumu if (novēršiet kļūdu).
  4. Iestatiet virknes paziņojumu "DateandTime", kas sniegs šādu formātu: stunda: minūtes-mēnesis/diena/gads.
  5. Iestatiet mainīgo fileName uz šādu: pacientaNosaukums.m.

Tagad uz nākamo funkcijas sadaļu: Vai šāda nosaukuma fails jau pastāv?

1) Pieņemsim, ka šī nosaukuma fails jau pastāv:

  1. Palaidiet failu, lai iegūtu rindā esošās vērtības
  2. Pievienojiet pašreizējās iterācijas "DateandTime" datus kā jaunu šūnu x vērtību masīvā (indeksa beigas+1)
  3. Pievienojiet pašreizējo "brainVolume" vērtību kā jaunu šūnu y vērtību masīvā (indeksa beigas+1)
  4. Saglabājiet failā ielādētos pašreizējos mainīgos.

2) Pieņemsim, ka šī nosaukuma fails neeksistē:

  1. Izveidojiet jaunu failu ar nosaukumu, kas saglabāts mainīgajā "patientName"
  2. Pievienojiet pašreizējos "DateandTime" datus kā šūnu tukšā x vērtību masīvā
  3. Pievienojiet pašreizējos "brainVolume" datus kā šūnu tukšā y vērtību masīvā
  4. Saglabājiet failā ielādētos pašreizējos mainīgos.

12. solis: datu reģistrēšana: smadzeņu apjoma diagrammas parādīšana laika gaitā

Datu reģistrēšana: smadzeņu apjoma diagrammas parādīšana laika gaitā
Datu reģistrēšana: smadzeņu apjoma diagrammas parādīšana laika gaitā
  1. Pārveidojiet x vērtību masīvu (xVals) kategoriskā masīvā (xValsCategorical), lai varētu uzzīmēt
  2. Izveidojiet attēla logu 5
  3. Uzzīmējiet punktus, kas apzīmēti ar "xValsCategorical" un "yVals" (satur smadzeņu tilpumu), izmantojot dobus apļus, lai norādītu punktus un savienotu tos ar punktētām līnijām
  4. Nosauciet sižetu kā: patientName Brain Volume Data
  5. Iezīmējiet x asi, kā parādīts attēlā
  6. Iezīmējiet y asi, kā parādīts attēlā
  7. Ļaujiet skaitlim 5 būt vienādam ar izlaidi

No tā izsauktā funkcija patientName sniegs failu ar rediģētiem datiem, kas laika gaitā izseko smadzeņu apjomu, un diagrammu, kurā parādītas tendences.

13. darbība. Nepilnību novēršana apakšplūsmās: apakšplāksne. M

Aizverošās nepilnības apakšplūsmās: apakšplāksne. M
Aizverošās nepilnības apakšplūsmās: apakšplāksne. M

Funkcija, kas pielāgota no koda no vietnes https://www.briandalessandro.com, darbojas, lai novērstu plaisas starp galvenā koda apakšplāna skaitļiem, kad tiek veidoti skaitļi, kas parāda MRI attēlus un smadzeņu slāņus. Apakšplāna funkcija, kas tiek izmantota subplotclose.m, pielāgo doto apakšplānu pozīciju, lai tā cieši pieguļ viens otram garākās dimensijas aspektā. Piemēram, ja kodam ir paredzēta 7 x 3 matrica, rindas būs cieši pieguļošas, jo rindas izmērs ir garāks. Ja kodam ir paredzēta 3 x 7 matrica, kolonnas būs cieši pieguļošas, un rindās ir atstarpes, kā parādīts mūsu galvenā koda attēlos.

14. darbība: galvenais kods: visu notīrīšana un ievades pieprasīšana

Galvenais kods: visu notīrīšana un ievades pieprasīšana
Galvenais kods: visu notīrīšana un ievades pieprasīšana

Lai sāktu galveno kodu, loga augšējā kreisajā stūrī noklikšķiniet uz tās pašas pogas, kas saka "Jauns", un iepriekšējās sadaļās izvēlieties "Funkcija", nevis "Funkcija". Ierakstiet kodu, kā parādīts redaktora loga attēlā. Koda rindas veic šādus uzdevumus secībā:

  1. Aizveriet visus atvērtos failus, izņemot 0, 1 un 2.
  2. Aizveriet visus skaitļu logus.
  3. Notīriet visus mainīgos lielumus darbvietā.
  4. Notīriet komandu logu.
  5. Parādīt komandu logā: MRI skenēšanai, lūdzu, ievadiet šādus izmērus:
  6. Jaunajā komandrindas rindā jautājiet: Vienas skenēšanas ilgums milimetros:. Lietotāja ievadītā atbilde tiks iestatīta uz mainīgo "lengthMM".
  7. Jaunā rindā jautājiet: Attālums starp MRI skenēšanu milimetros:. Lietotāja ievadītā atbilde tiks iestatīta uz mainīgo "ZStacks".

15. solis: galvenais kods: attēlu apstrāde sērijveidā

Galvenais kods: attēlu apstrāde sērijveidā
Galvenais kods: attēlu apstrāde sērijveidā
Galvenais kods: attēlu apstrāde sērijveidā
Galvenais kods: attēlu apstrāde sērijveidā

Šajā sadaļā kods ielādēs attēlus (kas sastāv no smadzeņu šķērsgriezumu MRI skenēšanas) un katra attēla faila nosaukumus saglabās mainīgajā "Bāze" un parādīs katru MRI skenēšanu. Lūdzu, sekojiet attēlā redzamajam kodam, kas ir šāds:

  1. Izveidojiet struktūras masīvu "BrainImages", kas satur informāciju par visiem failiem pašreizējā mapē, kas atbilst MRI nosaukuma formātam _ (). Png
  2. Iestatiet mainīgo "NumberofImages" vienādu ar elementu skaitu struktūras masīvā "BrainImages"
  3. Atveriet figūru logu 1
  4. Iestatiet ciklam ciklu, lai skatītu failā saskaitīto attēlu skaitu
  5. Katrai cilpai "CurrentImage" ir katra faila atbilstošais nosaukums MRI_i-p.webp" />
  6. Izveidojiet 3x7 apakšplānu, lai parādītu 19 attēlus, kas jāielādē ar "imshow"
  7. Parādiet katru attēlu kā citu elementu apakšplāna skaitļu logā
  8. Nosauciet katru apakšplāna elementu kā Level_, kur tukšs ir cilpas for iterācijas numurs.
  9. Pabeigt for ciklu (izvairoties no kļūdām)

1. attēlā tiks parādīti visi MRI skenējumi neapstrādātā veidā 3 x 7 konfigurācijā bez atstarpēm x orientācijā.

16. solis: galvenais kods: polsterējums

Galvenais kods: polsterējums
Galvenais kods: polsterējums

Izmantojot polsterējumu, mēs izvairāmies no nelielām attēlu izmēru neatbilstībām, kas var izraisīt kļūdu izmēru neatbilstības gadījumā, ja viens attēls ir nedaudz lielāks par otru.

  1. Atveriet figūras logu 2
  2. Ielādējiet attēla matricu no MRI_1-p.webp" />
  3. Atrodiet attēla matricas izmēru un iestatiet uz "OriginalXPixels" (rindu skaitam) un "OriginalYPixels" (kolonnu skaitam)
  4. Iestatiet matricu "BrainMat", lai tajā būtu visas nulles ar vēl 20 rindām un vēl 20 kolonnām katrā plaknē un 19 kopējiem šķērsgriezumiem - viens katrā plaknē.
  5. Iestatiet “HolesMat”, lai tas sastāvētu no viena un tā paša trīsdimensiju nulles masīva, lai vēlāk ievadītu caurumu koordinātas
  6. Izveidojiet "zeroMat", lai tas būtu spilventiņa izmērs plus divdesmit rindas un divdesmit kolonnas, divdimensiju nulles masīvs.

17. solis: galvenais kods: robežu noteikšana

Galvenais kods: robežu noteikšana
Galvenais kods: robežu noteikšana
Galvenais kods: robežu noteikšana
Galvenais kods: robežu noteikšana
  1. Iestatiet cilpu ciklam, lai izietu datus no katra iepriekš ielādētā attēla
  2. Tādā pašā veidā, kā partijas apstrāde tika veikta agrāk, "CurrentImage" ielādē failus ar "MRI_i.png", kur i ir atkārtojuma numurs
  3. Palaidiet katru attēlu, izmantojot iepriekš izveidoto apstrādes funkciju "LevelCurveTracings2.m"
  4. Atrodiet izvades "Brain" izmēru, iestatiet rindu skaitu uz "Currentrow" un kolonnu skaitu uz "Currentcolumns"
  5. Iestatiet "CurrentMat" uz nulles matricu ar izmēriem, kas norādīti "Currentrow" un "Currentcolumns"
  6. Centrējiet datus no "Brain" sadaļā "CurrentMat" ar 10 rindu rezervi no visām pusēm
  7. Izveidojiet 3 x 7 izmēru apakšplānu, lai parādītu attēlu robežas
  8. Nosaukiet katru apakšplāna elementu attēla logā
  9. Izveidojiet trīsdimensiju matricu "BrainMat", kas sastāv no katra robežas slāņa "CurrentMat"
  10. Pārtrauciet ciklu for (lai izvairītos no kļūdām)

Sekojošā apakšnodaļa aizpilda caurumus, kas palikuši piedāvātās trīsdimensiju formas augšpusē un apakšā

  1. Iestatiet “LevelCurve1” vienādu ar “BrainMat” pirmo slāni (cietā daļa)
  2. Iestatiet “LevelCurveEnd” vienādu ar “BrainMat” pēdējo slāni (cietā virsma)
  3. Pārrakstiet “LevelCurve1” ar aizpildītu slāni
  4. Pārrakstiet “LevelCurveEnd” ar aizpildītu slāni
  5. Iestatiet aizpildīto slāni kā “BrainMat” apakšējo slāni
  6. Iestatiet aizpildīto slāni kā “BrainMat” augšējo slāni

18. solis: galvenais kods: pareizā Z izmēra noteikšana

Galvenais kods: pareizā Z izmēra noteikšana
Galvenais kods: pareizā Z izmēra noteikšana

Pirmās trīs rindas sastāv no tukša masīva "z" iestatīšanas un vienkāršu konvertēšanas darbību veikšanas (sadaliet pikseļus pēc garuma), lai iegūtu pareizu skaļuma nolasījumu mm^3

  1. Izveidojiet cilpu, lai pārvietotos pa katru slāni
  2. Atrodiet to skaitu noteiktā slānī
  3. Konvertējiet z koordinātas tām par vērtībām, kas ir pielāgotas pareizai attiecībai, iestatot uz "tempz", kolonnu vektoru
  4. Pievienojiet vektoram z līmeņa līknes z vērtību

Ar to z koordinātas ir pareizi noregulētas.

19. solis: galvenais kods: X un Y koordinātu noteikšana

Galvenais kods: X un Y koordinātu noteikšana
Galvenais kods: X un Y koordinātu noteikšana

Tagad, lai noteiktu x un y pozīcijas katrā no robežām esošajiem punktiem.

  1. Inicializējiet "xBrain" kā tukšu masīvu
  2. Inicializējiet "yBrain" kā tukšu masīvu
  3. Iestatiet cilpu, lai tā varētu iziet cauri katram ielādētajam attēlam
  4. Apkopojiet divu kolonnu matricu, lai saitē saglabātu katra punkta plaknes koordinātas, ko attēlo kolonnu vektori "RowBrain" un "ColumnBrain"
  5. Pievienojiet "xBrain" ar pašlaik atrastajām "RowBrain" koordinātām
  6. Pievienojiet "yBrain" ar pašlaik atrastajām "ColumnBrain" koordinātām
  7. Pārtrauciet ciklu for (lai izvairītos no kļūdām)

20. solis: galvenais kods: trīsdimensiju struktūras uzzīmēšana, apjoma atrašana un datu reģistrēšana

Galvenais kods: trīsdimensiju struktūras uzzīmēšana, apjoma atrašana un datu reģistrēšana
Galvenais kods: trīsdimensiju struktūras uzzīmēšana, apjoma atrašana un datu reģistrēšana
Galvenais kods: trīsdimensiju struktūras uzzīmēšana, apjoma atrašana un datu reģistrēšana
Galvenais kods: trīsdimensiju struktūras uzzīmēšana, apjoma atrašana un datu reģistrēšana
Galvenais kods: trīsdimensiju struktūras uzzīmēšana, apjoma atrašana un datu reģistrēšana
Galvenais kods: trīsdimensiju struktūras uzzīmēšana, apjoma atrašana un datu reģistrēšana
Galvenais kods: trīsdimensiju struktūras uzzīmēšana, apjoma atrašana un datu reģistrēšana
Galvenais kods: trīsdimensiju struktūras uzzīmēšana, apjoma atrašana un datu reģistrēšana

Izmantojot funkciju alphaShape, mēs izveidosim trīsdimensiju struktūru, no kuras mēs varam aprēķināt smadzeņu tilpumu.

  1. Izmantojiet funkciju alphaShape, pievienojiet vektorus "xBrain", "yBrain" un "z" x, y un z koordinātām un iestatiet vienādu ar "BrainPolyhedron"
  2. Atveriet attēlu logu 3
  3. Uzzīmējiet aprēķināto alfa formu "BrainPolyhedron", parādiet attēla logā
  4. Aprēķiniet alfa formas tilpumu, izmantojot funkciju "apjoms", kas darbojas alfa formām
  5. Pārveidojiet skaļumu mm^3
  6. Izdrukājiet cietā materiāla tilpumu komandu logā
  7. Lūdziet ievadīt pacienta vārdu
  8. Iegūstiet pašreizējo datumu un laiku ar pulksteni un iestatiet uz "DateandTime"
  9. Zvaniet funkcijai "patientFiles", lai reģistrētu un uzzīmētu aprēķinātos datus

No šejienes otrajā un trešajā attēlā vajadzētu parādīt uznirstošos skaitļus, bet ceturtajā attēlā - komandu logā.

Ieteicams: