Pemprosesan Imej Moyamoya: 8 Langkah
Pemprosesan Imej Moyamoya: 8 Langkah
Anonim
Pemprosesan Imej Moyamoya
Pemprosesan Imej Moyamoya

Moyamoya, "kepulan asap," adalah penyakit jarang yang disebabkan oleh penyumbatan arteri pada ganglia basal, yang merupakan kawasan di dasar otak. Penyakit ini adalah penyakit serebrovaskular progresif yang kebanyakannya menyerang kanak-kanak. Gejala moyamoya termasuk strok awal, strok mini berterusan, kelemahan otot, kelumpuhan, atau kejang akibat penyempitan arteri yang progresif. Tanpa rawatan, moyamoya akan menyebabkan masalah dengan pertuturan, gangguan deria, dan kesedaran yang rosak. Dalam projek kami, kami akan menggunakan MATLAB untuk memproses gambar MRI atau MRA menggunakan pelbagai penapis untuk mengurangkan kebisingan dalam gambar untuk mencari kawasan yang terjejas. Selain itu, kami akan menggunakan penambahbaikan fitur untuk mencari kawasan yang terjejas dengan lebih tepat. Selain itu, kita kemudian akan menjalankan ujian-t sampel bebas untuk menentukan sama ada terdapat perbezaan yang signifikan antara jumlah saluran darah di otak normal berbanding dengan otak yang terkena moyamoya.

Langkah 1: Cari Imbasan MRI dan MRA Otak Normal dan Otak yang Mempengaruhi Moyamoya

Cari Imbasan MRI dan MRA Otak Normal dan Otak yang Mempengaruhi Moyamoya
Cari Imbasan MRI dan MRA Otak Normal dan Otak yang Mempengaruhi Moyamoya
Cari Imbasan MRI dan MRA Otak Normal dan Otak yang Mempengaruhi Moyamoya
Cari Imbasan MRI dan MRA Otak Normal dan Otak yang Mempengaruhi Moyamoya
Cari Imbasan MRI dan MRA Otak Normal dan Otak yang Mempengaruhi Moyamoya
Cari Imbasan MRI dan MRA Otak Normal dan Otak yang Mempengaruhi Moyamoya
Cari Imbasan MRI dan MRA Otak Normal dan Otak yang Mempengaruhi Moyamoya
Cari Imbasan MRI dan MRA Otak Normal dan Otak yang Mempengaruhi Moyamoya

Imej ini adalah imbasan yang kami gunakan untuk projek yang kami dapati dalam talian. Dua gambar dengan saluran darah yang terletak di tengahnya adalah imbasan MRA, sementara dua gambar lain adalah imbasan MRI.

Pautan berikut adalah tempat imej ini dijumpai:

static.cambridge.org/resource/id/urn:cambr…

static.cambridge.org/resource/id/urn:cambr…

Langkah 2: Muatkan Imej Ke MATLAB dan Tetapkan Imej ke Pembolehubah untuk Memaparkan Gambar

Muatkan Imej Ke MATLAB dan Tetapkan Imej ke Pembolehubah untuk Memaparkan Imej
Muatkan Imej Ke MATLAB dan Tetapkan Imej ke Pembolehubah untuk Memaparkan Imej

Untuk memulakan proses, mulakan dengan mengosongkan tetingkap perintah, tutup semua kemungkinan angka dan grafik yang mungkin sudah terbuka dan kosongkan pemboleh ubah yang telah ditetapkan di ruang kerja anda.

Selepas itu, buat loop untuk 1 hingga 2 menggunakan perintah i = [1: 2]

Setelah itu, muatkan gambar MRA menggunakan perintah imread (sprintf ('filename%.filetype', i)) untuk membaca gambar dari fail yang ditentukan oleh nama fail diikuti dengan nombor yang digunakan untuk gelung menggunakan sprintf untuk batch loading dan tetapkan ke pemboleh ubah.

Kemudian untuk memaparkan gambar dalam gambar, gunakan perintah imshow (I).

Untuk menetapkan colormap kelabu, gunakan perintah colormap (kelabu).

Untuk menghilangkan warna dan menukar matriks 3D untuk gambar menjadi 2D, gunakan perintah rgb2gray (I) dan tetapkannya ke pemboleh ubah yang berasingan.

Kemudian muatkan gambar MRI dengan menggunakan perintah yang dinyatakan sebelumnya atau imread (sprintf ('filename%.filetype', i)) dan tetapkannya ke pemboleh ubah baru

Ulangi arahan rgb2gray dengan pemboleh ubah baru yang digunakan untuk gambar MRI.

Sekiranya perlu, anda boleh mengubah ukuran gambar menggunakan perintah tidak berubah (A, skala) dan tetapkan ke pemboleh ubah yang berasingan.

Langkah 3: Tingkatkan Struktur Memanjang dalam Imej Intensiti Dengan Penapisan Pelbagai Skala

Tingkatkan Struktur Memanjang dalam Intensiti Imej Dengan Penapisan Pelbagai Skala
Tingkatkan Struktur Memanjang dalam Intensiti Imej Dengan Penapisan Pelbagai Skala

Dengan menggunakan pemboleh ubah baru, gunakan perintah fibermetric (A) untuk meningkatkan struktur tiub dalam gambar

Dengan pemboleh ubah sebelumnya, gunakan perintah histeq (B) untuk meningkatkan pemerataan histogram dengan mengubah intensiti gambar dan menetapkannya ke pemboleh ubah baru.

Paparkan histogram menggunakan perintah imhist (B)

Buat pemboleh ubah baru untuk membuat ambang saringan. Dalam kes ini tetapkan pemboleh ubah sebelumnya> 0.875, menyaring intensiti piksel di bawah nilai 0.875

Setelah itu, buat gambar baru dan gunakan perintah imshow (A) untuk memaparkan gambar yang baru disaring.

Langkah 4: Jalankan Penapis Median 2D

Jalankan Penapis Median 2D
Jalankan Penapis Median 2D

Dengan menggunakan arahan medfilt2 (A, [m n]), jalankan penapis median 2D, di mana setiap piksel output mengandungi nilai median dalam batas mxn di sekitar piksel masing-masing dalam gambar input.

Buat gambar baru dan gunakan imshow (A) untuk memaparkan gambar yang ditapis median.

Langkah 5: Topeng Gambar

Topeng Gambar
Topeng Gambar

Dengan menggunakan median gambar yang ditapis, gunakan arahan [labeledImage, numberOfBlots] = bwlabel (A) untuk mengira bilangan bintik putih dalam gambar

Kemudian, gunakan fungsi props wilayah menyatakan = regionprops (berlabelImage, 'Area') untuk mengira kawasan setiap noda atau saluran darah

Tentukan semua kawasan menjadi satu pemboleh ubah

Kemudian gunakan pemboleh ubah lain, hitung jumlah titik yang melebihi 50 piksel

Selepas itu, urutkan sebarang titik yang berada di bawah 50 piksel dalam urutan menurun menggunakan perintah [sortedAreas, sortedIndicies] = sort (Areas, 'desc')

Kemudian, menggunakan pemboleh ubah lain, gunakan perintah ismember (labeledImage, sortedIndicies (1: numberToExtract)) untuk mengembalikan array dengan unsur-unsur berlabelImage dijumpai dalam urutan yang disusun dari nombor 1 hingga bilangan saluran darah untuk mengembalikan logik 1 (benar) atau logik 0 (salah).

Dengan pemboleh ubah pada langkah sebelumnya, cari titik yang benar (nilai> 0) dan buat susunan logik untuk membuat imej binari dan tetapkannya ke pemboleh ubah baru.

Buat angka baru dan gunakan imshow (A) gambar binari baru.

Kemudian, terbalikkan gambar menggunakan perintah imcomplement (A) dan tetapkan ke pemboleh ubah yang berbeza.

Untuk membuat gambar bertopeng, gunakan pemboleh ubah baru dengan arahan ubah ukuran gambar. * Uint8 (invertedimage)

Buat gambar baru dan gunakan imshow (A) untuk memaparkan gambar bertopeng.

Untuk mengakhiri keseluruhan kod, pastikan untuk menggunakan perintah 'end' untuk mengakhiri keseluruhan untuk gelung

Langkah 6: Pilih Imbasan MRA untuk Ujian Statistik

Pilih Imbasan MRA untuk Ujian Statistik
Pilih Imbasan MRA untuk Ujian Statistik
Pilih Imbasan MRA untuk Ujian Statistik
Pilih Imbasan MRA untuk Ujian Statistik
Pilih Imbasan MRA untuk Ujian Statistik
Pilih Imbasan MRA untuk Ujian Statistik

Untuk mempersiapkan ujian statistik, pilih imbasan MRA yang akan digunakan untuk ujian-t sampel bebas. Kerana dua sampel kami adalah otak yang terkena Moyamoya, dan otak normal, pilih jumlah imbasan MRA yang mencukupi untuk setiap kumpulan.

Langkah 7: Hitung Luas Kapal Darah dalam Persiapan untuk Pengujian Statistik

Hitung Luas Kapal Darah dalam Penyediaan Ujian Statistik
Hitung Luas Kapal Darah dalam Penyediaan Ujian Statistik

Ujian statistik akan menumpukan pada panjang atau jumlah saluran darah yang ditunjukkan pada imbasan MRA. Oleh itu, kita mesti mengira luas saluran darah sebelum membuat perbandingan.

Mulakan dengan menyaring MRA otak normal dan mengira jumlah saluran darah. Untuk melakukan ini, jalankan gelung untuk. Kerana terdapat tiga gambar, keadaannya adalah i = [1: 3].

Buka gambar dengan perintah imread dan tetapkan ke pemboleh ubah.

Seterusnya, buat pernyataan if / else dengan perintah if, else. Untuk pernyataan if, gunakan ukuran perintah (A, 3) == 3, di mana A adalah pemboleh ubah yang digunakan untuk membuka gambar, untuk membuat pernyataan if untuk dimensi ketiga array 3. Kemudian ubah gambar ke 2D dan menyingkirkan warna menggunakan perintah rgb2gray (A) dan memberikannya kepada pemboleh ubah baru. Gunakan arahan yang tidak sesuai (A, [m n]) untuk mengubah saiz gambar. Dalam kes ini, kami mengubah ukuran gambar menjadi matriks 1024 x 1024. Untuk meningkatkan struktur tiub gambar, gunakan perintah fibermetrik sekali lagi, dan tetapkan ke pemboleh ubah baru.

Berikut adalah pernyataan lain. Sekiranya gambar bukan matriks 3D, kami mahu melangkau penukaran. Lakukan perkara yang sama seperti pernyataan if, tetapi tanpa arahan rgb2gray (A).

Buat pemboleh ubah baru, tetapkan sama dengan pemboleh ubah dari langkah fibermetrik lebih besar daripada 0.15. Ini ambang gambar untuk intensiti lebih besar daripada 0.15.

Kami akan mengulangi baris kod dari langkah 4 dan 5 dari arahan dari garis saringan median hingga garis imshow (I). Setelah itu, gunakan jumlah perintah (I (:)) untuk menambahkan semua piksel yang membentuk saluran darah, dan tetapkannya ke pemboleh ubah yang terpisah. Namakan pemboleh ubah baru NormalBloodVessels (i) dan tetapkan sama dengan pemboleh ubah dari perintah sum (I (:)). Ini menambahkan data ke matriks.

Tamatkan gelung dan ulangi tetapi untuk MRA otak yang terjejas oleh Moyamoya. Namakan pemboleh ubah pada akhirnya MoyaMoyaBloodVessels (i) agar tidak membingungkannya dengan MRA otak normal.

Langkah 8: Jalankan ujian T Sampel Bebas

Jalankan ujian T Sampel Bebas
Jalankan ujian T Sampel Bebas

Oleh kerana terdapat dua sampel bebas, dan populasi kecil, jalankan ujian-t sampel bebas.

Buat dan namakan fungsi yang menjalankan ujian-t sampel bebas untuk menentukan sama ada jumlah saluran darah di MRA otak normal secara signifikan sama atau tidak dengan MRA otak yang terjejas oleh Moyamoya.

Paparkan set hipotesis untuk ujian dengan menggunakan arahan arahan ('X'). Pada baris pertama, paparkan, "Hipotesis untuk dua sampel ujian t." Pada baris kedua, paparkan, "H0 = Jumlah saluran darah otak normal sama dengan jumlah saluran darah otak dengan penyakit Moyamoya," untuk menyatakan hipotesis nol. Pada baris ketiga, paparkan, "HA = Jumlah saluran darah otak normal tidak sama dengan jumlah saluran darah otak dengan penyakit Moyamoya." untuk menyatakan hipotesis alternatif.

Dengan menggunakan selang keyakinan 95% dan ukuran sampel 3, hitung skor t dengan menggunakan perintah tinv ([0,025 0,975], 2) dan tetapkan kepada pemboleh ubah t. Gunakan perintah var (NormalBloodVessels) dan var (MoyaMoyaBloodVessels) dan tetapkannya kepada pemboleh ubah untuk mengira varians kedua-dua set data.

Periksa sama ada perbezaan hampir sama atau tidak. Lakukan ini dengan membuat pernyataan if / else dengan perintah if, else. Untuk keadaan dalam pernyataan if, tulis A / B == [0.25: 4], di mana A adalah pemboleh ubah yang menyumbang kepada varians saluran darah normal dan B adalah pemboleh ubah yang menjelaskan variasi saluran darah Moyamoya. 0.25 dan 4 berasal dari anggaran umum untuk menentukan sama ada varians sama atau tidak. Kemudian jalankan ujian dua sampel t dengan [h, p] = ttest2 (A, B, 0.05, 'keduanya', 'sama'), dengan A dan B menjadi pemboleh ubah yang sama seperti yang disebutkan sebelumnya. Untuk pernyataan yang lain, gunakan [h, p] = ttest2 (A, B, 0.05, 'keduanya', 'tidak sama') untuk menjalankan ujian t sampel dua sekiranya varian tidak sama. Tamatkan penyataan if / else. Ini akan mengira p.

Buat pernyataan if / else yang akan memaparkan kesimpulan berdasarkan nilai p. Syarat untuk pernyataan if adalah p> 0.05. Oleh kerana kita biasanya gagal menolak hipotesis nol ketika nilai p lebih besar daripada 0.05, gunakan perintah disp ('X') untuk memaparkan "Kerana nilai p lebih besar daripada 0.05 kita gagal menolak hipotesis nol," dan " Oleh itu kami gagal menolak bahawa jumlah saluran darah otak normal sama dengan otak dengan penyakit Moyamoya. " Dalam pernyataan lain, kerana kita biasanya menolak hipotesis nol ketika nilai p di bawah 0,05, gunakan perintah disp ('X') untuk memaparkan "Kerana nilai p kurang dari 0,05, kami menolak hipotesis nol," dan " Oleh itu, kami gagal untuk menolak bahawa jumlah saluran darah otak normal tidak sama dengan otak dengan penyakit Moyamoya. " Tamatkan penyataan if / else.

Disyorkan: