Isi kandungan:

Kotak Otak: Menjejak Isipadu Neural Sepanjang Masa: 20 Langkah
Kotak Otak: Menjejak Isipadu Neural Sepanjang Masa: 20 Langkah

Video: Kotak Otak: Menjejak Isipadu Neural Sepanjang Masa: 20 Langkah

Video: Kotak Otak: Menjejak Isipadu Neural Sepanjang Masa: 20 Langkah
Video: ✨The Melee Mage EP 01 - 13 Full Version [MULTI SUB] 2024, Julai
Anonim
Kotak Otak: Menjejak Isipadu Neural Dari Masa ke Masa
Kotak Otak: Menjejak Isipadu Neural Dari Masa ke Masa

Kemajuan ke arah kehidupan manusia yang lebih panjang telah menimbulkan peningkatan penyakit yang tidak dilihat oleh peradaban sebelum kita. Di antaranya, Alzheimer mempengaruhi kira-kira 5.3 juta orang tua Amerika yang hidup pada tahun 2017, atau kira-kira 1 dari 10 warga tua Amerika (https://www.alz.org/facts/) dan banyak lagi yang menderita demensia. Untuk membantu dalam perjuangan memahami apa yang menimpa para penatua kita, kod ini akan melengkapkan para penyelidik masa depan dan ingin tahu dengan kemampuan untuk mengesan jumlah otak dari masa ke masa.

Langkah 1: Menggunakan Brain Box

Menggunakan Brain Box
Menggunakan Brain Box

Untuk menggunakan kotak otak, seseorang hanya memerlukan yang berikut:

  • Imbasan MRI otak dan nama dan format fail seperti itu (semestinya semuanya mempunyai dimensi yang hampir sama)
  • Panjang satu imbasan
  • Jarak antara setiap lapisan (imbasan MRI)
  • Nama Pesakit (Semasa memasukkan, jangan masukkan spasi dan masukkan huruf besar nama depan dan nama belakang, seperti: FirstnameLastname)

Dan dari ini, seseorang mempunyai kemampuan untuk mengawasi tren individu dalam jumlah otak dari masa ke masa. Oleh itu, angka untuk kecenderungan Alzheimer dapat dikesan oleh perisian ini. Panjang yang kami gunakan dalam percubaan adalah 180 mm untuk panjang satu imbasan dan 5 mm untuk jarak antara imbasan MRI, berdasarkan angka rata-rata.

Walau bagaimanapun, penggunaan kotak otak tidak perlu dibatasi untuk tugas yang satu ini. Sekiranya penampang pepejal yang diberikan adalah gambar, seperti tumor itu sendiri, tren perubahan volume untuk ini juga dapat dilacak dalam perisian.

Langkah 2: Pengenalan: Menganalisis Keratan Keratan

Pengenalan: Menganalisis Keratan Keratan
Pengenalan: Menganalisis Keratan Keratan

Dalam struktur tiga dimensi, bidang dua dimensi yang terdiri daripada itu disebut keratan rentas. Bayangkan bahawa timbunan kertas membentuk prisma segi empat tepat, maka setiap kepingan kertas akan menjadi keratan rentas kertas. Dalam membayangkan otak, kita menerapkan pemikiran yang sama. MRI (pengimejan resonans magnetik) (lihat maklumat tentang MRI) menangkap bahagian otak yang melintang, dan dengan menggunakan sempadan yang ditentukan dalam setiap "lapisan" otak yang disediakan, kita dapat membina struktur untuk memodelkan dan mencari jumlah otak. Kita mesti membina fungsi terlebih dahulu untuk memberikan maklumat mengenai batasan tersebut.

Langkah 3: Menyiapkan Fungsi: LevelCurveTracings.m

Menetapkan Fungsi: LevelCurveTracings.m
Menetapkan Fungsi: LevelCurveTracings.m
Menetapkan Fungsi: LevelCurveTracings.m
Menetapkan Fungsi: LevelCurveTracings.m
Menetapkan Fungsi: LevelCurveTracings.m
Menetapkan Fungsi: LevelCurveTracings.m
Menetapkan Fungsi: LevelCurveTracings.m
Menetapkan Fungsi: LevelCurveTracings.m

Pertama, pastikan komputer anda telah MATLAB_R2017b dimuat turun (muat turun di sini) dan buka MATLAB. Di antara muka MATLAB, klik pada butang di sudut kiri atas tetingkap yang bertuliskan "Baru" dengan tanda tambah kuning tebal, dan pilih pilihan "fungsi", untuk membuka di ruang editor ruang yang menyerupai gambar ketiga. Kami akan fokus mengubah baris pertama untuk mengatur fungsi. Di tempat yang tertera "outputArg1", ganti dengan "otak", "outputArg2" untuk mengatakan "lubang", "untitled2" hingga "exp2", dan "inputArg1" ke "image", dan hapus "inputArg2". Anda sekarang mempunyai fungsi untuk dipanggil menggunakan "exp2", mengambil satu argumen "gambar" dan mengeluarkan batas "otak" dan "lubang". Garis pertama fungsi harus menyerupai garis yang digambarkan dalam gambar keempat. Padamkan semua kod di bawah baris awal ini.

Langkah 4: Membangunkan Algoritma Terikat: Mencari Batas

Membangunkan Algoritma Terikat: Mencari Batas
Membangunkan Algoritma Terikat: Mencari Batas

Taipkan kod seperti berikut di bawah garis. Bahagian fungsi ini melakukan baris demi baris berikut.

  1. Muatkan gambar "image" ke dalam pemboleh ubah "mri".
  2. Ubah "mri" menjadi gambar yang dibuat dari nilai dalam julat nombor menjadi angka dan nol (aka binarizing) berdasarkan nilai ambang yang ditetapkan. Jika nilai dalam piksel sama dengan atau lebih besar dari 0,1, itu ditetapkan ke satu, jika tidak, nilai pada piksel tersebut ditetapkan ke nol.
  3. Empat baris berikut menjadikan 10 lajur dan baris di pinggir lapisan imbasan MRI menjadi angka nol, untuk mengelakkan membaca nilai yang tidak betul seperti membuat batas (seperti yang dipelajari daripada bereksperimen dengan kod).
  4. Pada baris terakhir, bwboundaries mengesan batas gambar binarized "mri" dan menetapkannya sama dengan "b", sebuah array dengan unsur-unsur yang indeksnya sesuai dengan batas yang ditetapkan ke satu.

Langkah 5: Membangunkan Algoritma Bound: Menjana Array Bound Luar

Membangunkan Algoritma Bound: Menjana Array Bound Luar
Membangunkan Algoritma Bound: Menjana Array Bound Luar

Ikuti di tetingkap editor dengan kod berikut dalam gambar. Bahagian kod ini melakukan baris demi baris berikut.

  1. Cari panjang setiap baris gambar binarized "b" (cellfun menggunakan panjang fungsi pada setiap baris).
  2. Tetapkan "loc" untuk menyimpan panjang maksimum.
  3. Cari indeks panjang maksimum, tetapkan untuk disimpan di "largeTrace".
  4. Cari ukuran gambar "mri", yang terdiri daripada ukuran yang sama dengan "b", dan tetapkan ke "BWsize".
  5. Cari bilangan baris dalam susunan gambar, tetapkan ke "ysize".
  6. Cari bilangan lajur dalam susunan gambar, tetapkan ke "xsize".
  7. Hasilkan array "terbesarTraceMat", matriks sifar "ysize" oleh "xsize".
  8. Cari indeks setara dari nilai langganan yang sesuai dengan tempat nilaiTrace x terbesar dan nilai y, simpan dalam vektor "lindex".
  9. Dalam matriks sifar, "terbesarTraceMat", ubah elemen pada indeks yang sesuai dengan nilai indeks yang disimpan sebagai elemen dalam "lindex" menjadi satu.

Oleh itu, susunan logik "terbesarTraceMat" mempunyai kawasan sempadan terbesar dari keratan rentas imbasan otak yang diberikan sebagai yang mempunyai latar belakang nol

Langkah 6: Membangunkan Algoritma Terikat: Bekerja Dengan Titik Pusat

Membangunkan Algoritma Terikat: Bekerja Dengan Titik Pusat
Membangunkan Algoritma Terikat: Bekerja Dengan Titik Pusat

Seterusnya, kita mesti menguji untuk melihat sama ada keratan rentas terdiri daripada lebih dari satu wilayah (yang terbesar). Dengan menguji penjajaran centroid wilayah terbesar, kita dapat melihat apakah ada satu wilayah bersebelahan, yang akan menghasilkan centroid yang lebih berpusat, atau kemungkinan adanya beberapa wilayah.

  1. Gunakan "regionProps" untuk mencari maklumat mengenai centroid yang ada, set sama dengan array struktur "tempStruct"
  2. Bentuk array "centroid" dengan data dari medan "centroid" digabungkan secara menegak
  3. Ambil nilai lajur kedua "centroid" (koordinat dimensi mendatar)
  4. Jalankan penapis untuk memeriksa penjajaran centroid ke pusat mendatar

Langkah 7: Membangunkan Algoritma Terikat: Apabila Centroid Tidak Berpusat

Membangunkan Algoritma Terikat: Apabila Centroid Tidak Berpusat
Membangunkan Algoritma Terikat: Apabila Centroid Tidak Berpusat

Dalam senario bahawa pusat wilayah jejak terbesar tidak berpusat, kami melalui langkah-langkah berikut. Seperti yang telah kita perhatikan dalam imbasan MRI, kecenderungan otak hemisfera digambarkan pada keratan rentas ketika tidak bersebelahan, jadi kita sekarang terus merancang jejak kedua terbesar bersama dengan jejak terbesar di "terbesarTraceMat"

  1. Tetapkan matriks jejak ke pemboleh ubah baru "b2"
  2. Memulakan matriks kosong "b2", dengan satu set diindeks oleh "loc"
  3. Buat bersyarat, untuk ketika sentroid tidak berpusat (iaitu lapisan berbilang wilayah)
  4. Tetapkan ukuran jejak baru yang akan dijumpai untuk setiap baris (traceSize2)
  5. Tetapkan "loc2" untuk mencari indeks di mana terdapat had
  6. Biarkan sel yang ditentukan oleh "loc2" di "b2" sama dengan "largeTrace2"
  7. Tukar langganan menjadi indeks, tetapkan ke "lindex"
  8. Tukar elemen yang sepadan dengan "lindex" dalam "largeTraceMat" menjadi 1
  9. Memulakan matriks kosong "b2", dengan satu set diindeks oleh "loc2"

Langkah 8: Membangunkan Algoritma Terikat: Gangguan Lubang

Membangunkan Algoritma Terikat: Gangguan Lubang
Membangunkan Algoritma Terikat: Gangguan Lubang

Dalam menangani lubang, nilai-nilai yang tersimpan di "b2" menjejaki struktur selain jejak terbesar, dan memplotnya ke bentuk "terbesarTraceMat" yang terisi akan menunjukkan di mana terdapat lubang di kawasan otak.

  1. Buat array "fillMat", yang merupakan bentuk yang terisi dari "largeTraceMat"
  2. Buat array "interferenceMat", "ysize" by "xsize" array nol
  3. Buat array "interferenceloc", untuk menyimpan nilai dari "b2", digabungkan secara menegak
  4. Buat array "lindex" untuk menyimpan indeks yang sesuai dengan "interferenceloc"
  5. Untuk indeks dalam "interferenceMat" yang sesuai dengan "lindex", tetapkan nilai ke 1, menjadikan wilayah batas yang berbeza

Langkah 9: Membangunkan Algoritma Terikat: Mencari Lubang, Memuktamadkan Batas Otak dan Lubang Lubang

Membangunkan Algoritma Terikat: Mencari Lubang, Memuktamadkan Batas Otak dan Batasan Lubang
Membangunkan Algoritma Terikat: Mencari Lubang, Memuktamadkan Batas Otak dan Batasan Lubang
  1. Tetapkan array "tempMat" sama dengan "interferenceMat" plus "fillingMat", sehingga masing-masing menambah nilai dalam matriks
  2. Tetapkan array "holeLoc" sama dengan indeks di mana "interferenceMat" dan "fillingMat" keduanya sama dengan satu
  3. Sediakan "holeMat" sebagai matriks sifar dimensi "ysize" x "xsize"
  4. Tetapkan indeks dalam "holeMat" yang sama dengan "holeLoc" seperti yang ada
  5. Tetapkan "otak" ke "terbesarTraceMat"
  6. Tetapkan "lubang" ke "lubangMat"

Dengan penemuan di mana nilai matriks tambahan adalah sama dengan 2, lokasi lubang dengan mudah diamankan dan diplot ke matriks kosong.

Langkah 10: Data Log: Fungsi PatientFiles.m

Data Log: Fungsi PatientFiles.m
Data Log: Fungsi PatientFiles.m
Data Log: Fungsi PatientFiles.m
Data Log: Fungsi PatientFiles.m
Data Log: Fungsi PatientFiles.m
Data Log: Fungsi PatientFiles.m
Data Log: Fungsi PatientFiles.m
Data Log: Fungsi PatientFiles.m

Sama seperti penyediaan fungsi terakhir, klik pada butang di sudut kiri atas tetingkap yang bertuliskan "Baru" dengan tanda tambah kuning tebal, dan pilih pilihan "fungsi", untuk membuka ruang tetingkap editor yang menyerupai gambar ketiga. Pada baris pertama, hapus matriks output dan ganti dengan hanya "output", ganti "untitled2" dengan "patientFiles", hapus semua argumen input, dan sebaliknya ikuti format yang ditentukan dalam gambar keempat baris kod. Baris pertama fungsi ini harus sesuai dengan format gambar.

Langkah 11: Log Data ke Fail

Log Data ke Fail
Log Data ke Fail
Log Data ke Fail
Log Data ke Fail

Untuk menyediakan fail untuk log data yang dijumpai oleh fungsi utama (belum dijelaskan), kita mesti mengikuti langkah-langkah ini (seperti yang ditentukan oleh kod baris demi baris).

  1. Periksa sama ada input untuk pesakitName adalah rentetan.
  2. Sekiranya bukan rentetan, tunjukkan input pesakitName harus berupa tali.
  3. Tamatkan pernyataan if (cegah ralat).
  4. Sediakan pernyataan rentetan "DateandTime" yang akan memberikan format berikut: jam: minit - bulan / hari / tahun.
  5. Tetapkan fileName berubah kepada yang berikut: patientName.m.

Sekarang ke bahagian fungsi yang seterusnya: Adakah fail nama ini sudah ada?

1) Katakan fail nama ini sudah ada:

  1. Jalankan fail untuk mendapatkan nilai dari barisan yang lalu
  2. Tambahkan data "DateandTime" dari lelaran semasa sebagai sel baru dalam susunan sel nilai x (akhir indeks + 1)
  3. Tambahkan nilai "brainVolume" semasa sebagai sel baru dalam susunan sel nilai y (akhir indeks + 1)
  4. Simpan pemboleh ubah semasa yang dimuat dalam fail.

2) Andaikan fail nama ini tidak wujud:

  1. Buat fail baru dengan nama yang disimpan dalam pemboleh ubah "patientName"
  2. Tambahkan data "DateandTime" semasa sebagai sel ke dalam susunan sel kosong dengan nilai x
  3. Tambahkan data "brainVolume" semasa sebagai sel ke dalam susunan sel kosong nilai y
  4. Simpan pemboleh ubah semasa yang dimuat dalam fail.

Langkah 12: Data Log: Memaparkan Plot Otak Otak Sepanjang Masa

Data Pembalakan: Memaparkan Plot Otak Otak Sepanjang Masa
Data Pembalakan: Memaparkan Plot Otak Otak Sepanjang Masa
  1. Tukarkan array nilai x (xVals) menjadi susunan kategori (xValsCategorical), untuk membolehkan merancang
  2. Hasilkan tetingkap angka 5
  3. Petak titik-titik yang ditentukan oleh "xValsCategorical" dan "yVals" (mengandungi isi otak), menggunakan bulatan berongga untuk menunjukkan titik dan dihubungkan dengan garis putus-putus
  4. Tajuk plot sebagai: data Volume Otak pesakitNama
  5. Labelkan paksi x seperti yang ditunjukkan dalam gambar
  6. Labelkan paksi y seperti yang ditunjukkan dalam gambar
  7. Biarkan angka 5 sama dengan output

Dari ini, fungsi patientName yang dipanggil akan menghasilkan file dengan data yang diedit yang melacak jumlah otak dari masa ke masa, dan plot yang menunjukkan tren.

Langkah 13: Menutup Jurang dalam Subplot: Subplotclose.m

Menutup Jurang dalam Subplot: Subplotclose.m
Menutup Jurang dalam Subplot: Subplotclose.m

Fungsi, yang diadaptasi dari kod dari https://www.briandalessandro.com, berfungsi untuk menutup jurang antara angka subplot kod utama, ketika angka yang memaparkan gambar MRI dan lapisan otak dibuat. Fungsi subplot yang digunakan dalam subplotclose.m menyesuaikan kedudukan subplot yang diberikan agar sesuai dengan satu sama lain dalam aspek dimensi yang lebih panjang. Sebagai contoh, jika kod bermaksud matriks 7 x 3, baris akan sesuai dengan dimensi baris yang lebih panjang. Sekiranya kod bermaksud matriks 3 x 7, lajur akan sesuai, dengan jurang pada baris, seperti yang ditunjukkan dalam angka kod utama kami.

Langkah 14: Kod Utama: Menghapus Semua dan Meminta Masukan

Kod Utama: Menghapus Semua dan Meminta Masukan
Kod Utama: Menghapus Semua dan Meminta Masukan

Untuk memulakan kod utama, klik pada butang yang sama yang mengatakan "Baru" di sudut kiri atas tetingkap, dan pilih "Skrip" dan bukan "Fungsi" dari bahagian sebelumnya. Ketikkan kod seperti yang ditunjukkan dalam gambar di tetingkap editor. Garis kod melakukan tugas berikut mengikut urutan:

  1. Tutup semua fail yang terbuka kecuali 0, 1, dan 2.
  2. Tutup semua tetingkap gambar.
  3. Kosongkan semua pemboleh ubah di ruang kerja.
  4. Kosongkan Tetingkap Perintah.
  5. Paparan di Tetingkap Perintah: Sila masukkan dimensi berikut untuk imbasan MRI:
  6. Pada baris baru di Window Perintah, tanyakan: Panjang satu imbasan dalam milimeter:. Respons yang diberikan oleh pengguna akan ditetapkan ke pemboleh ubah "lengthMM".
  7. Pada baris baru, tanyakan: Jarak antara imbasan MRI dalam milimeter:. Respons yang diberikan oleh pengguna akan disetel ke pemboleh ubah "ZStacks".

Langkah 15: Kod Utama: Kumpulan Memproses Imej

Kod Utama: Kumpulan Memproses Imej
Kod Utama: Kumpulan Memproses Imej
Kod Utama: Kumpulan Memproses Imej
Kod Utama: Kumpulan Memproses Imej

Pada bahagian ini, kod akan memuatkan gambar (terdiri daripada imbasan MRI bahagian keratan otak) dan menyimpan nama setiap fail gambar dalam pemboleh ubah "Base" dan memaparkan setiap imbasan MRI. Ikuti dengan kod dalam gambar, yang berikut:

  1. Buat susunan struktur "BrainImages" yang mengandungi maklumat tentang semua fail dalam folder semasa yang sesuai dengan format nama MRI _ (). Png
  2. Tetapkan pemboleh ubah "NumberofImages" sama dengan bilangan elemen dalam susunan struktur "BrainImages"
  3. Buka tetingkap angka 1
  4. Tetapkan loop untuk berpusing untuk melihat jumlah gambar yang dikira dalam fail
  5. Untuk setiap gelung, "CurrentImage" adalah nama masing-masing fail MRI_i.png, dengan nombor lelaran sebagai 'i'
  6. Hasilkan subplot 3 x 7 untuk memaparkan 19 gambar yang akan dimuat oleh "imshow"
  7. Paparkan setiap gambar sebagai elemen lain di tetingkap gambar subplot
  8. Tajuk setiap elemen subplot sebagai Level_, di mana kosong adalah bilangan lelaran bagi gelung.
  9. Tamatkan gelung untuk (mengelakkan ralat)

Ini akan dipaparkan dalam tetingkap rajah 1 semua imbasan MRI dalam bentuk mentah dalam konfigurasi 3 x 7 tanpa jurang dalam orientasi x.

Langkah 16: Kod Utama: Melapisi

Kod Utama: Padding
Kod Utama: Padding

Dengan pelapisan, kami mengelakkan masalah sedikit perbezaan pada ukuran gambar yang mungkin menghasilkan ralat untuk ketidaksesuaian dimensi sekiranya satu gambar sedikit lebih besar daripada yang lain.

  1. Buka tetingkap angka 2
  2. Muatkan matriks gambar dari MRI_1-p.webp" />
  3. Cari ukuran matriks gambar dan tetapkan ke "OriginalXPixels" (untuk bilangan baris) dan "OriginalYPixels" (untuk jumlah lajur)
  4. Sediakan matriks "BrainMat" untuk terdiri daripada semua angka nol dengan 20 baris lagi dan 20 lajur lagi untuk setiap satah, dan 19 keratan rentas total, satu per satah.
  5. Sediakan "HolesMat" untuk terdiri daripada susunan sifar tiga dimensi yang sama untuk memasukkan koordinat lubang kemudian
  6. Buat "zeroMat" untuk menjadi ukuran pad ditambah dua puluh baris dan dua puluh lajur, susunan sifar dua dimensi.

Langkah 17: Kod Utama: Menentukan Sempadan

Kod Utama: Menentukan Sempadan
Kod Utama: Menentukan Sempadan
Kod Utama: Menentukan Sempadan
Kod Utama: Menentukan Sempadan
  1. Tetapkan gelung untuk memeriksa data dari setiap gambar yang dimuat lebih awal
  2. Dengan cara pemprosesan kumpulan yang sama sebelumnya, "CurrentImage" memuat fail dengan "MRI_i.png", di mana saya adalah nombor lelaran
  3. Jalankan setiap gambar melalui fungsi pemprosesan "LevelCurveTracings2.m" yang anda buat tadi
  4. Cari ukuran output "Otak", tetapkan jumlah baris ke "Currentrow" dan jumlah lajur ke "Currentcolumns"
  5. Tetapkan "CurrentMat" ke matriks nol dengan dimensi yang ditentukan oleh "Currentrow" dan "Currentcolumns"
  6. Pusatkan data dari "Brain" di "CurrentMat", dengan margin 10 baris di semua sisi
  7. Hasilkan subplot dimensi 3 x 7, untuk memaparkan sempadan gambar
  8. Tajuk setiap elemen subplot di tetingkap gambar
  9. Hasilkan matriks tiga dimensi "BrainMat" yang terdiri daripada setiap lapisan batas "CurrentMat"
  10. Akhiri gelung untuk (untuk kesilapan avoinding)

Bahagian berikut mengisi lubang yang ditinggalkan di bahagian atas dan bawah bentuk tiga dimensi yang dicadangkan

  1. Tetapkan "LevelCurve1" sama dengan lapisan pertama "BrainMat" (bahagian bawah pepejal)
  2. Tetapkan "LevelCurveEnd" sama dengan lapisan akhir "BrainMat" (bahagian atas pepejal)
  3. Ganti "LevelCurve1" dengan lapisan yang diisi
  4. Timpa "LevelCurveEnd" dengan lapisan yang diisi
  5. Tetapkan lapisan yang diisi sebagai lapisan bawah "BrainMat"
  6. Tetapkan lapisan yang diisi sebagai lapisan atas "BrainMat"

Langkah 18: Kod Utama: Menentukan Dimensi Z yang Betul

Kod Utama: Menentukan Dimensi Z yang Betul
Kod Utama: Menentukan Dimensi Z yang Betul

Tiga baris pertama terdiri daripada menyusun array kosong "z", dan melakukan operasi penukaran sederhana (bahagikan piksel dengan panjang) untuk mendapatkan bacaan volume yang betul dalam mm ^ 3

  1. Buat gelung untuk pusingan setiap lapisan
  2. Cari bilangan bilangan dalam lapisan tertentu
  3. Tukar koordinat z untuk yang menjadi nilai yang diskala ke nisbah yang betul, tetapkan ke "tempz", vektor lajur
  4. Tambahkan nilai z untuk keluk tahap ke vektor z

Dengan ini koordinat z diselaraskan dengan betul.

Langkah 19: Kod Utama: Menentukan Koordinat X dan Y

Kod Utama: Menentukan Koordinat X dan Y
Kod Utama: Menentukan Koordinat X dan Y

Sekarang untuk menentukan kedudukan x dan y setiap titik dalam sempadan.

  1. Permulaan "xBrain" sebagai array kosong
  2. Permulaan "yBrain" sebagai array kosong
  3. Sediakan gelung untuk gelung melalui setiap gambar yang dimuat
  4. Susun matriks dua lajur untuk menyimpan koordinat satah setiap titik dalam batas, diwakili oleh vektor lajur "RowBrain" dan "ColumnBrain"
  5. Tambahkan "xBrain" dengan koordinat "RowBrain" yang dijumpai sekarang
  6. Tambahkan "yBrain" dengan koordinat "ColumnBrain" yang sedang dijumpai
  7. Tamatkan gelung untuk (untuk mengelakkan ralat)

Langkah 20: Kod Utama: Memplotkan Struktur Tiga Dimensi, Mencari Volume, dan Data Log

Kod Utama: Memplotkan Struktur Tiga Dimensi, Mencari Volume, dan Data Log
Kod Utama: Memplotkan Struktur Tiga Dimensi, Mencari Volume, dan Data Log
Kod Utama: Memplotkan Struktur Tiga Dimensi, Mencari Volume, dan Data Log
Kod Utama: Memplotkan Struktur Tiga Dimensi, Mencari Volume, dan Data Log
Kod Utama: Memplotkan Struktur Tiga Dimensi, Mencari Volume, dan Data Log
Kod Utama: Memplotkan Struktur Tiga Dimensi, Mencari Volume, dan Data Log
Kod Utama: Memplotkan Struktur Tiga Dimensi, Mencari Volume, dan Mencatat Data
Kod Utama: Memplotkan Struktur Tiga Dimensi, Mencari Volume, dan Mencatat Data

Dengan menggunakan fungsi alphaShape, kita akan membuat struktur tiga dimensi dari mana kita dapat mengira isipadu otak.

  1. Gunakan fungsi alphaShape, pasangkan vektor "xBrain", "yBrain" dan "z" untuk koordinat x, y, dan z, dan tetapkan sama dengan "BrainPolyhedron"
  2. Buka tetingkap angka 3
  3. Petak bentuk alfa yang dikira "BrainPolyhedron", dipaparkan di tetingkap gambar
  4. Hitung isipadu bentuk alpha, menggunakan fungsi "volume" yang berfungsi untuk bentuk alpha
  5. Tukar isipadu menjadi mm ^ 3
  6. Cetak isi padu pepejal di Tetingkap Perintah
  7. Permintaan agar nama pesakit ditetapkan sebagai input
  8. Dapatkan tarikh dan masa semasa dengan jam, dan tetapkan ke "DateandTime"
  9. Fungsi panggilan "patientFiles" untuk log dan plot data yang dikira

Dari sini gambar kedua dan ketiga harus menunjukkan angka yang muncul, dan gambar keempat yang harus dipaparkan di Window Perintah.

Disyorkan: