İçindekiler:

Beyin Kutusu: Zamanla Sinirsel Hacmi İzleme: 20 Adım
Beyin Kutusu: Zamanla Sinirsel Hacmi İzleme: 20 Adım

Video: Beyin Kutusu: Zamanla Sinirsel Hacmi İzleme: 20 Adım

Video: Beyin Kutusu: Zamanla Sinirsel Hacmi İzleme: 20 Adım
Video: Şerit Takip Sistemi Kaza Anı 🚘 Lane Tracking System Accident ⚡️🆘⚠️⛔️ 2024, Temmuz
Anonim
Beyin Kutusu: Zamanla Sinirsel Hacmi İzleme
Beyin Kutusu: Zamanla Sinirsel Hacmi İzleme

Daha uzun insan yaşamının sınırına doğru ilerleme, bizden önceki uygarlıkların görmediği hastalıkların yükselişini beraberinde getirdi. Bunların arasında Alzheimer, 2017'de yaşayan yaklaşık 5,3 milyon yaşlı Amerikalıyı veya yaklaşık 10 yaşlı Amerikalıdan 1'ini (https://www.alz.org/facts/) ve bunaması olan sayısız diğer kişiyi etkilemiştir. Yaşlılarımızı neyin etkilediğini anlama mücadelesine yardımcı olmak için, bu kod gelecekteki araştırmacıları ve meraklı meraklıları zaman içinde beyin hacmini takip etme yeteneği ile donatacak.

Adım 1: Beyin Kutusunu Kullanma

Beyin Kutusunu Kullanma
Beyin Kutusunu Kullanma

Beyin kutusunu kullanmak için sadece aşağıdakilere ihtiyaç vardır:

  • Bir beynin MRI taramaları ve bu tür dosyaların adı ve formatı (hepsi kabaca aynı boyutlara sahip olmalıdır)
  • Bir taramanın uzunluğu
  • Her katman arasındaki mesafe (MRI taraması)
  • Hasta Adı (Girirken boşluk bırakmayın ve lütfen ad ve soyadını büyük harfle yazın, örneğin: AdSoyadı)

Ve bundan, bir kişinin zaman içindeki beyin hacmindeki eğilimleri takip etme yeteneği vardır. Böylece Alzheimer trendlerine ilişkin rakamlar bu yazılım ile takip edilebiliyor. Denemede kullandığımız uzunluk, ortalama rakamlara dayalı olarak, bir taramanın uzunluğu için 180 mm ve MRI taramaları arasındaki mesafe için 5 mm idi.

Bununla birlikte, beyin kutusunun uygulanmasının bu tek görevle sınırlandırılması gerekmez. Belirli bir katının enine kesitleri, kendi başına bir tümör gibi fotoğrafsa, bunlar için hacimdeki değişikliklerdeki eğilimler de yazılımda izlenebilir.

Adım 2: Giriş: Kesitleri Analiz Etme

Giriş: Kesitleri Analiz Etme
Giriş: Kesitleri Analiz Etme

Üç boyutlu yapılarda, bunlardan oluşan iki boyutlu düzlemlere kesitler denir. Bir kağıt yığınının dikdörtgen bir prizma oluşturduğunu, her bir kağıt parçasının kağıdın bir kesiti olacağını hayal edin. Beyni hayal ederken, aynı düşünce tarzını uygularız. MRI (manyetik rezonans görüntüleme) (MR ile ilgili bilgilere bakın) beynin enine kesitlerini yakalar ve sağlanan beynin her "katmanında" tanımlanan sınırları kullanarak, beynin hacmini modellemek ve bulmak için bir yapı oluşturabiliriz.. Bununla birlikte, öncelikle bu tür sınırlar hakkında bilgi sağlamak için bir fonksiyon oluşturmalıyız.

Adım 3: Bir İşlev Ayarlama: LevelCurveTracings.m

Bir İşlev Ayarlama: LevelCurveTracings.m
Bir İşlev Ayarlama: LevelCurveTracings.m
Bir İşlev Ayarlama: LevelCurveTracings.m
Bir İşlev Ayarlama: LevelCurveTracings.m
Bir İşlev Ayarlama: LevelCurveTracings.m
Bir İşlev Ayarlama: LevelCurveTracings.m
Bir İşlev Ayarlama: LevelCurveTracings.m
Bir İşlev Ayarlama: LevelCurveTracings.m

Öncelikle bilgisayarınızda MATLAB_R2017b'nin indirildiğinden emin olun (buradan indirin) ve MATLAB'ı açın. MATLAB arayüzünde, pencerenin sol üst köşesinde koyu sarı artı işaretiyle "Yeni" yazan düğmeye tıklayın ve "işlev" seçeneğini seçin, editör penceresinde aşağıdakine benzer bir boşluk açın. üçüncü resim. Fonksiyonu kurmak için ilk satırı değiştirmeye odaklanacağız. "outputArg1" yazdığı yeri "brain", "delikler" demek için "outputArg2", "untitled2" ila "exp2" ve "inputArg1" yerine "image" yazın ve "inputArg2"yi silin. Artık "exp2" kullanılarak çağrılacak, bir argüman "görüntü" alarak ve "beyin" ve "delikler" sınırlarının çıktısını veren bir fonksiyonunuz var. Fonksiyonun ilk satırı, dördüncü resimde gösterilen satıra benzemelidir. Bu ilk satırın altındaki tüm kodu silin.

Adım 4: Sınır Algoritmasını Geliştirme: Sınırları Bulma

Sınır Algoritmasını Geliştirme: Sınırları Bulma
Sınır Algoritmasını Geliştirme: Sınırları Bulma

Kodu satırın altına aşağıdaki gibi yazın. Fonksiyonun bu bölümü aşağıdakileri satır satır yapar.

  1. "image" görüntüsünü "mri" değişkenine yükleyin.
  2. "Mri"yi, belirlenmiş bir eşik değerine dayalı olarak birler ve sıfırlar (aka ikilileştirme) aralığındaki değerlerden oluşan bir görüntüye dönüştürün. Bir pikseldeki değer 0,1'e eşit veya daha büyükse bire, değilse o pikseldeki değer sıfıra ayarlanır.
  3. Aşağıdaki dört satır, sınır oluştururken uygun olmayan değerlerin okunmasını önlemek için MRI tarama katmanının kenarlarındaki 10 sütunu ve satırı sıfıra çevirir (kodla denemeden öğrenildiği gibi).
  4. Son satırda, bwboundaries ikilileştirilmiş görüntü "mri"nin sınırlarını izler ve onu, indeksleri bire ayarlanmış sınırlarınkilere karşılık gelen öğelerin bulunduğu bir dizi olan "b"ye eşitler.

Adım 5: Sınır Algoritmasını Geliştirme: Dış Sınır Dizisini Oluşturma

Sınırlı Algoritmayı Geliştirme: Dış Sınır Dizisi Oluşturma
Sınırlı Algoritmayı Geliştirme: Dış Sınır Dizisi Oluşturma

Resimdeki aşağıdaki kod ile editör penceresinde takip edin. Kodun bu bölümü aşağıdakileri satır satır yapar.

  1. İkilileştirilmiş "b" görüntüsünün satırlarının her birinin uzunluğunu bulun (cellfun, fonksiyon uzunluğunu her satıra uygular).
  2. Maksimum uzunlukları saklamak için "loc" ayarlayın.
  3. "largestTrace" içinde saklamak için ayarlanmış maksimum uzunluğun dizinini bulun.
  4. "b" ile aynı boyuttan oluşan ve "BWsize" olarak ayarlanan "mri" görüntüsünün boyutunu bulun.
  5. Görüntü dizisindeki satır sayısını "ysize" olarak ayarlayın.
  6. Görüntünün dizisindeki sütun sayısını "xsize" olarak ayarlayın.
  7. Sıfırlardan oluşan "xsize" matrisine göre bir "ysize" olan "largestTraceMat" dizisini oluşturun.
  8. En büyükTrace x değerlerinin ve y değerlerinin bulunduğu yere karşılık gelen indisli değerlerden eşdeğer indeksi bulun, "lindex" vektöründe saklayın.
  9. Sıfır matrisinde, "largestTraceMat", "lindex"te eleman olarak saklanan indeks değerlerine karşılık gelen indekslerdeki elemanları bire çevirir.

Böylece mantıksal dizi "en büyükTraceMat", verilen beyin tarama kesitinin en büyük sınırlı bölgesine sahiptir ve arka planda sıfırlar olarak çizilir.

Adım 6: Sınırlı Algoritmayı Geliştirme: Merkez Noktası ile Çalışma

Sınırlı Algoritmayı Geliştirme: Merkez Noktayla Çalışmak
Sınırlı Algoritmayı Geliştirme: Merkez Noktayla Çalışmak

Ardından, kesitin birden fazla bölgeden (en büyük) oluşup oluşmadığını test etmeliyiz. En büyük bölgenin ağırlık merkezinin hizalamasını test ederek, daha merkezli bir ağırlık merkezi oluşturacak bir bitişik bölge mi yoksa birden fazla bölge olasılığı mı olduğunu görebiliriz.

  1. Mevcut merkezler hakkında bilgi bulmak için "regionProps" kullanın, "tempStruct" yapı dizisine eşit olarak ayarlayın
  2. Dikey olarak birleştirilmiş "centroid" alanındaki verilerle "centroids" dizisi oluşturun
  3. "Centroidlerin" ikinci sütun değerlerini alın (yatay boyut koordinatları)
  4. Merkezin yatay merkeze hizalamasını kontrol etmek için bir filtre çalıştırın

7. Adım: Bağlı Algoritmayı Geliştirme: Bir Centroid Merkezlenmediğinde

Bağlı Algoritmayı Geliştirme: Bir Centroid Merkezlenmediğinde
Bağlı Algoritmayı Geliştirme: Bir Centroid Merkezlenmediğinde

En büyük iz bölgesinin ağırlık merkezinin merkezlenmemiş olduğu senaryoda aşağıdaki adımlardan geçiyoruz. MRI taramalarında gözlemlediğimiz gibi, eğilim, bitişik değilken enine kesitte gösterilen beyin yarım kürelerine sahip olmaktı, bu nedenle şimdi "en büyük TraceMat" içinde en büyük iz ile birlikte ikinci en büyük izi çizmeye devam ediyoruz.

  1. İzlenen matrisi yeni bir "b2" değişkenine ayarlayın
  2. "loc" ile indekslenen bir set ile boş matris "b2"yi başlat
  3. Bir centroid ortalanmadığında (yani çoklu bölge katmanı) koşullu oluşturun
  4. Her satır için bulunacak yeni bir iz boyutu ayarlayın (traceSize2)
  5. Sınırların bulunduğu dizinleri bulmak için "loc2"yi ayarlayın
  6. "b2"de "loc2" ile belirtilen hücrelerin "largestTrace2"ye eşit olmasına izin verin
  7. Abonelikleri indekslere dönüştürün, "lindex" olarak ayarlayın
  8. "largestTraceMat" içindeki "lindex"e karşılık gelen öğeleri 1 olarak değiştirin
  9. "loc2" tarafından indekslenen bir set ile boş matris "b2"yi başlat

Adım 8: Bağlı Algoritmayı Geliştirme: Deliklerin Girişimi

Sınırlı Algoritmayı Geliştirme: Deliklerin Girişimi
Sınırlı Algoritmayı Geliştirme: Deliklerin Girişimi

Deliklerle uğraşırken, "b2" de saklanan değerler, en büyük iz dışındaki yapıların izini sürdü ve bunları doldurulmuş bir "en büyükTraceMat" formuna yerleştirmek, beyin bölgelerinde deliklerin nerede olduğunu ortaya çıkaracaktır.

  1. "largestTraceMat" biçiminde doldurulmuş "filledMat" dizisini oluşturun
  2. "interferenceMat" dizisi, "ysize" ile "xsize" sıfır dizisi oluşturun
  3. Dikey olarak birleştirilmiş "b2" değerlerini depolamak için "interferenceloc" dizisi oluşturun
  4. "interferenceloc"a karşılık gelen indeksleri depolamak için "lindex" dizisi oluşturun
  5. "Lindex"e karşılık gelen "interferenceMat" içindeki indeksler için, değeri 1 olarak ayarlayın, farklı bir sınırlanmış bölge yapın

Adım 9: Sınır Algoritmasını Geliştirme: Delikleri Bulmak, Beyin Sınırlarını ve Delik Sınırlarını Sonlandırmak

Sınır Algoritmasını Geliştirme: Delikleri Bulmak, Beyin Sınırlarını ve Delik Sınırlarını Sonlandırmak
Sınır Algoritmasını Geliştirme: Delikleri Bulmak, Beyin Sınırlarını ve Delik Sınırlarını Sonlandırmak
  1. "tempMat" dizisini "interferenceMat" artı "filledMat" değerine eşit olarak ayarlayın, böylece matristeki her değeri birbirine ekleyin
  2. "holesLoc" dizisini, "interferenceMat" ve "filledMat" öğelerinin her ikisinin de bire eşit olduğu dizinlere eşit olarak ayarlayın
  3. "holesMat"ı "ysize" x "xsize" boyutlarının sıfır matrisi olarak ayarlayın
  4. "holesLoc"a eşit olan indeksleri "holesMat" içinde birer olarak ayarlayın
  5. "Beyni" "en büyükTraceMat" olarak ayarlayın
  6. "Delikleri" "holesMat" olarak ayarlayın

Eklenen matrislerin değerlerinin 2'ye eşit olduğu yerin bulunmasıyla, delik konumları kolayca sabitlendi ve boş bir matris üzerine çizildi.

Adım 10: Verileri Günlüğe Kaydetme: PatientFiles.m İşlevi

Günlük Verileri: Function PatientFiles.m
Günlük Verileri: Function PatientFiles.m
Günlük Verileri: Function PatientFiles.m
Günlük Verileri: Function PatientFiles.m
Günlük Verileri: Function PatientFiles.m
Günlük Verileri: Function PatientFiles.m
Günlük Verileri: Function PatientFiles.m
Günlük Verileri: Function PatientFiles.m

Son işlevin kurulumuna benzer şekilde, pencerenin sol üst köşesindeki koyu sarı artı işaretiyle "Yeni" yazan düğmeye tıklayın ve düzenleyici penceresinde bir boşluk açmak için "işlev" seçeneğini seçin. üçüncü resimdekine benziyor. İlk satırda, çıktı matrisini silin ve yalnızca "çıktı" ile değiştirin, "adsız2"yi "hasta Dosyaları" ile değiştirin, tüm girdi bağımsız değişkenlerini silin ve bunun yerine kod satırının dördüncü resminde belirtilen biçimlendirmeyi izleyin. Bu işlevin ilk satırı, resmin biçimlendirmesiyle eşleşmelidir.

Adım 11: Verilerin Dosyalara Girişi

Verileri Dosyalara Kaydetme
Verileri Dosyalara Kaydetme
Verileri Dosyalara Kaydetme
Verileri Dosyalara Kaydetme

Ana işlev tarafından bulunan (henüz açıklanmayan) verileri günlüğe kaydedecek bir dosya kurmak için şu adımları izlemeliyiz (satır satır kod tarafından belirtildiği gibi).

  1. HastaAdı girişinin bir dize olup olmadığını kontrol edin.
  2. Bir dize değilse, hastaAdı girişinin bir dize olması gerektiğini görüntüleyin.
  3. if ifadesini sonlandırın (hatayı önleyin).
  4. Şu biçimi verecek bir "DateandTime" dize ifadesi ayarlayın: saat:dakika--ay/gün/yıl.
  5. fileName değişkenini aşağıdaki gibi ayarlayın: PatientName.m.

Şimdi işlevin bir sonraki bölümüne: Bu ada sahip bir dosya zaten var mı?

1) Bu ismin dosyasının zaten var olduğunu varsayalım:

  1. Kuyruğa alınan geçmişteki değerleri almak için dosyayı çalıştırın
  2. Geçerli yinelemenin "DateandTime" verilerini, x değerlerinin hücre dizisinde yeni bir hücre olarak ekleyin (dizin sonu+1)
  3. Geçerli "brainVolume" değerini, y değerlerinin hücre dizisinde yeni bir hücre olarak ekleyin (endeks sonu+1)
  4. Dosyaya yüklenen mevcut değişkenleri kaydedin.

2) Diyelim ki bu isimdeki dosya mevcut değil:

  1. "hastaAdı" değişkeninde kayıtlı adla yeni bir dosya oluşturun
  2. Geçerli "DateandTime" verilerini hücre olarak x değerlerinin boş hücre dizisine ekleyin
  3. Geçerli "brainVolume" verilerini bir hücre olarak y değerlerinin boş hücre dizisine ekleyin
  4. Dosyaya yüklenen mevcut değişkenleri kaydedin.

Adım 12: Verileri Günlüğe Kaydetme: Zaman İçinde Beyin Hacmi Grafiği Görüntüleme

Günlük Verileri: Zaman İçinde Beyin Hacmi Grafiği Görüntüleme
Günlük Verileri: Zaman İçinde Beyin Hacmi Grafiği Görüntüleme
  1. Çizime izin vermek için x değerleri dizisini (xVals) kategorik bir diziye (xValsCategorical) dönüştürün
  2. Şekil penceresi 5 oluştur
  3. Noktaları belirtmek ve kesikli çizgilerle bağlanacak içi boş daireler kullanarak "xValsCategorical" ve "yVals" (beyin hacmini içeren) ile belirtilen noktaları çizin
  4. Grafiği şu şekilde adlandırın: hastaAdı Beyin Hacmi Verisi
  5. Resimde gösterildiği gibi x eksenini etiketleyin
  6. Resimde gösterildiği gibi y eksenini etiketleyin
  7. Şekil 5 çıktıya eşit olsun

Bundan, çağrılan hastaAdı işlevi, zaman içinde beyin hacmini takip eden düzenlenmiş verileri ve eğilimleri gösteren bir grafiği içeren bir dosya verecektir.

Adım 13: Alt Noktalardaki Boşlukları Kapatma: Subplotclose.m

Alt Noktalardaki Boşlukları Kapatma: Subplotclose.m
Alt Noktalardaki Boşlukları Kapatma: Subplotclose.m

www.briandalessandro.com adresindeki koddan uyarlanan işlev, MRI görüntülerini gösteren şekiller ve beyin katmanları oluşturulduğunda, ana kodun alt grafik şekilleri arasındaki boşlukları kapatma işlevi görür. subplotclose.m içinde kullanılan alt grafik işlevi, verilen alt noktaların konumunu, daha uzun boyut açısından birbirine tam oturacak şekilde ayarlar. Örneğin, kod 7 x 3'lük bir matrisi hedefliyorsa, satır boyutu daha uzun olduğu için satırlar rahat sığacaktır. Kod 3 x 7'lik bir matrisi amaçlıyorsa, ana kodumuzun şekillerinde gösterildiği gibi, sütunlar satırlarda boşluklar olacak şekilde sıkı bir şekilde sığacaktır.

Adım 14: Ana Kod: Tümünü Temizleme ve Girdi İstemi

Ana Kod: Tümünü Temizleme ve Girdileri İsteme
Ana Kod: Tümünü Temizleme ve Girdileri İsteme

Ana kodu başlatmak için, pencerenin sol üst köşesinde "Yeni" yazan aynı düğmeye tıklayın ve önceki bölümlerden "İşlev" yerine "Komut Dosyası" seçeneğini seçin. Editör penceresinde resimde gösterildiği gibi kodu yazın. Kod satırları sırayla aşağıdaki görevleri yapar:

  1. 0, 1 ve 2 dışında açık olan tüm dosyaları kapatın.
  2. Tüm şekil pencerelerini kapatın.
  3. Çalışma alanındaki tüm değişkenleri temizleyin.
  4. Komut Penceresini temizleyin.
  5. Komut Penceresinde Görüntüle: Lütfen MRI taramaları için aşağıdaki boyutları girin:
  6. Komut Penceresinde yeni bir satırda şunu sorun: Milimetre cinsinden bir taramanın uzunluğu:. Kullanıcı tarafından girilen yanıt "uzunlukMM" değişkenine ayarlanacaktır.
  7. Yeni bir satırda şunu sorun: Milimetre cinsinden MRI taramaları arasındaki mesafe:. Kullanıcı tarafından girilen yanıt "ZStacks" değişkenine ayarlanacaktır.

Adım 15: Ana Kod: Görüntüleri Toplu İşleme

Ana Kod: Görüntülerin Toplu İşlenmesi
Ana Kod: Görüntülerin Toplu İşlenmesi
Ana Kod: Görüntülerin Toplu İşlenmesi
Ana Kod: Görüntülerin Toplu İşlenmesi

Bu bölümde, kod görüntüleri (beynin enine kesitlerinin MRI taramalarından oluşan) yükleyecek ve her görüntü dosyasının adını "Temel" değişkeninde saklayacak ve MRI taramalarının her birini görüntüleyecektir. Lütfen aşağıdakileri yapan resimdeki kodu takip edin:

  1. MRI_()-p.webp" />
  2. "NumberofImages" değişkenini "BrainImages" yapı dizisindeki öğe sayısına eşit olarak ayarlayın
  3. Şekil penceresi 1'i aç
  4. Dosyada sayılan görüntü sayısı arasında geçiş yapmak için bir for döngüsü ayarlayın
  5. Her döngü için, "CurrentImage", MRI_i-p.webp" />
  6. "imshow" tarafından yüklenecek 19 resmi görüntülemek için 3 x 7 alt grafiği oluşturun
  7. Alt grafik şekil penceresinde her görüntüyü başka bir öğe olarak göster
  8. Her alt grafik öğesini Düzey_ olarak adlandırın; burada boşluk, for döngüsünün yineleme sayısıdır.
  9. for döngüsünü sonlandırın (hatadan kaçınarak)

Bu, şekil penceresi 1'de tüm MRI taramalarını, x yönünde boşluk olmaksızın 3 x 7 konfigürasyonunda ham formda gösterecektir.

Adım 16: Ana Kod: Doldurma

Ana Kod: Dolgu
Ana Kod: Dolgu

Dolgu ile, bir resmin diğerinden biraz daha büyük olması durumunda boyut uyumsuzluğu için hataya yol açabilecek resim boyutlarında küçük farklılıklar sorununu önlüyoruz.

  1. Şekil penceresi 2'yi aç
  2. MRI_1.png'den görüntü matrisini "padBase" değişkenine yükleyin
  3. Resmin matrisinin boyutunu bulun ve "OriginalXPixels" (satır sayısı için) ve "OriginalYPixels" (sütun sayısı için) olarak ayarlayın.
  4. "BrainMat" matrisini, her düzlem için 20 satır ve 20 sütun ve her düzlem için bir tane olmak üzere toplam 19 enkesit içeren tüm sıfırlardan oluşacak şekilde ayarlayın.
  5. Daha sonra delik koordinatlarını girmek için aynı üç boyutlu sıfır dizisinden oluşacak şekilde "HolesMat" kurun
  6. Tampon boyutu artı yirmi satır ve yirmi sütun, iki boyutlu bir sıfır dizisi olacak şekilde "sıfırMat" oluşturun.

Adım 17: Ana Kod: Sınırların Belirlenmesi

Ana Kod: Sınırların Belirlenmesi
Ana Kod: Sınırların Belirlenmesi
Ana Kod: Sınırların Belirlenmesi
Ana Kod: Sınırların Belirlenmesi
  1. Daha önce yüklenen her görüntüden gelen verileri gözden geçirmek için bir for döngüsü ayarlayın
  2. Daha önceki toplu işlemeyle aynı şekilde, "CurrentImage" dosyaları "MRI_i.png" ile yükler, burada i yineleme numarasıdır
  3. Her görüntüyü daha önce yaptığınız "LevelCurveTracings2.m" işleme işleviyle çalıştırın
  4. "Beyin" çıktısının boyutunu bulun, satır sayısını "Currentrow" ve sütun sayısını "Currentcolumns" olarak ayarlayın
  5. "CurrentMat" öğesini, "Currentrow" ve "Currentcolumns" tarafından belirtilen boyutlara sahip bir sıfır matrisine ayarlayın
  6. "CurrentMat" da "Beyin"den gelen verileri, her tarafta 10 satırlık bir kenar boşluğu ile ortalayın
  7. Görüntülerin sınırlarını görüntülemek için 3 x 7 boyutlarında bir alt grafik oluşturun
  8. Şekil penceresindeki alt grafik öğelerinin her birine başlık verin
  9. Her sınır katmanından oluşan "CurrentMat" üç boyutlu matris "BrainMat" oluşturun
  10. for döngüsünü sonlandırın (hatalardan kaçınmak için)

Aşağıdaki alt bölüm, önerilen üç boyutlu şeklin üstünde ve altında kalan delikleri doldurur.

  1. "LevelCurve1"i, "BrainMat"ın ilk katmanına eşit olarak ayarlayın (dolunun altı)
  2. "LevelCurveEnd" öğesini "BrainMat"ın son katmanına eşit olarak ayarlayın (düzün üstü)
  3. Doldurulmuş bir katmanla "LevelCurve1" üzerine yaz
  4. Doldurulmuş bir katmanla "LevelCurveEnd" üzerine yaz
  5. Doldurulmuş katmanı "BrainMat" ın alt katmanı olarak ayarlayın
  6. Doldurulmuş katmanı "BrainMat" ın en üst katmanı olarak ayarlayın

Adım 18: Ana Kod: Uygun Z Boyutunun Belirlenmesi

Ana Kod: Uygun Z Boyutunun Belirlenmesi
Ana Kod: Uygun Z Boyutunun Belirlenmesi

İlk üç satır, boş bir "z" dizisi oluşturmaktan ve mm^3 cinsinden doğru bir hacim okuması elde etmek için basit dönüştürme işlemleri yapmaktan (pikselleri uzunluğa bölmekten) oluşur.

  1. Her katmanda dolaşmak için bir for döngüsü oluşturun
  2. Belirli bir katmandakilerin sayısını bulun
  3. Bir sütun vektörü olan "tempz" olarak ayarlanmış, uygun orana ölçeklenmiş değerlere, olanlar için z koordinatlarını dönüştürün
  4. Seviye eğrisi için z değerini z vektörüne ekleyin

Bununla z koordinatları düzgün bir şekilde ayarlanır.

Adım 19: Ana Kod: X ve Y Koordinatlarının Belirlenmesi

Ana Kod: X ve Y Koordinatlarının Belirlenmesi
Ana Kod: X ve Y Koordinatlarının Belirlenmesi

Şimdi sınırlardaki noktaların her birinin x ve y konumlarını belirlemek için.

  1. "xBrain" i boş bir dizi olarak başlat
  2. "yBrain" i boş bir dizi olarak başlat
  3. Yüklenen her görüntü arasında dolaşmak için bir for döngüsü ayarlayın
  4. "RowBrain" ve "ColumnBrain" sütun vektörleriyle temsil edilen, sınırdaki her noktanın düzlemsel koordinatlarını depolamak için iki sütunlu bir matris derleyin
  5. Şu anda bulunan "RowBrain" koordinatlarıyla "xBrain" ekleyin
  6. Şu anda bulunan "ColumnBrain" koordinatlarıyla "yBrain" ekleyin
  7. for döngüsünü sonlandırın (hatayı önlemek için)

Adım 20: Ana Kod: Üç Boyutlu Bir Yapının Çizilmesi, Hacmin Bulunması ve Verilerin Kaydedilmesi

Ana Kod: Üç Boyutlu Bir Yapının Çizilmesi, Hacim Bulma ve Verilerin Kaydedilmesi
Ana Kod: Üç Boyutlu Bir Yapının Çizilmesi, Hacim Bulma ve Verilerin Kaydedilmesi
Ana Kod: Üç Boyutlu Bir Yapının Çizilmesi, Hacim Bulma ve Verilerin Kaydedilmesi
Ana Kod: Üç Boyutlu Bir Yapının Çizilmesi, Hacim Bulma ve Verilerin Kaydedilmesi
Ana Kod: Üç Boyutlu Bir Yapının Çizilmesi, Hacim Bulma ve Verilerin Kaydedilmesi
Ana Kod: Üç Boyutlu Bir Yapının Çizilmesi, Hacim Bulma ve Verilerin Kaydedilmesi
Ana Kod: Üç Boyutlu Bir Yapının Çizilmesi, Hacim Bulma ve Verilerin Kaydedilmesi
Ana Kod: Üç Boyutlu Bir Yapının Çizilmesi, Hacim Bulma ve Verilerin Kaydedilmesi

alphaShape fonksiyonunu kullanarak, beynin hacmini hesaplayabileceğimiz üç boyutlu bir yapı oluşturacağız.

  1. alphaShape işlevini kullanın, x, y ve z koordinatları için "xBrain", "yBrain" ve "z" vektörlerini takın ve "BrainPolyhedron"a eşit olarak ayarlayın
  2. Şekil penceresi 3'ü aç
  3. Hesaplanan alfa şeklini "BrainPolyhedron" çizin, şekil penceresinde görüntüleyin
  4. Alfa şekilleri için çalışan bir "hacim" işlevini kullanarak alfa şeklinin hacmini hesaplayın
  5. Hacmi mm^3'e çevir
  6. Komut Penceresinde katının hacmini yazdırın
  7. Giriş olarak ayarlanacak bir hasta adı istemi
  8. Geçerli tarih ve saati saatle alın ve "DateandTime" olarak ayarlayın
  9. Hesaplanan verileri günlüğe kaydetmek ve çizmek için " PatientFiles " işlevini çağırın

Buradan ikinci ve üçüncü resimler çıkan şekilleri, dördüncü resim ise Komut Penceresinde görüntülenmesi gerekenleri göstermelidir.

Önerilen: