自分の画像の形式とM​atlab内のデータ​セットのmriを同じ​形式にしたい

4 views (last 30 days)
virgo kk
virgo kk on 9 Dec 2019
Commented: virgo kk on 16 Dec 2019
初めましてMatlabを使用しているものです
プログラムを実行したいのですが、mri =load ('mri')とされています
元データがMatlabのデータセット27枚の128*128のsllice画像だとわかったのですが自身のもつ画像を同じ形式にしてプログラムを実行したいと考えています。
sizに関しては理解できます。
しかしD,mapに関しては手持ちの画像をどう変えればいいのかわかりません
手持ちの画像は256*256の画像を10枚です。
ファイル形式はdicom形式とbmp形式があります。可能な方で進めようと考えています
ご教授頂けると幸いです。

Accepted Answer

Etsuo Maeda
Etsuo Maeda on 13 Dec 2019
回答がついていないようなので。
何をどうしたいのかよくわかりませんが、エスパーすると
・256x256x1の白黒画像をbmp形式で10枚所持している
・256x256x1の白黒画像が10枚格納されたdicom形式ファイルを所持している
・何かしらの処理系を含んだMATLABコードを所持している
・当該のMATLABコードは mri = load('mri') によってmriなる変数を作っている
・自分の手持ちのデータを変数 mri と同じ形式に変換したい
さらに、MATLABのデモファイル 'mri' を読んでいる前提ならば、
・変数mriは構造体配列になっている
・mri.D: 128x128x1x27 uint8, mri.map: 89x3 uint8, mri.siz: [128 128 27] となっている
・mri.sizについては、何某かの知見を自分で得た
・mri.D の 4-D matrixの作り方がわからない
・mri.map の89x3 配列の意味がわからない
ということでしょうか。
4-D matrixはcat関数をつかうなりして、自分で作成できます。dicom形式ファイルなら、そもそも4-D matrixで画像データが格納されています。
map はカラーマップ情報に対応します。mapについても、dicom形式ファイルなら、ファイル内に格納されています。
[X, map] = dicomread('yourfilename.dcm');
で手持ちのデータを確認してみてはどうでしょうか。Xが4-D matrix、mapにカラーマップが格納されるはずです。
4-D matrixを自作するなら、あまり格好よくはありませんが、
I = imread('peppers.png');
I = imresize(rgb2gray(I), [256, 256]);
D = cat(4, I, I, I, I, I, I, I, I, I, I);
のように、やってみてはどうでしょうか。
HTH
  1 Comment
virgo kk
virgo kk on 16 Dec 2019
回答有難うございます。
助言頂けたおかげでプログラムの実行ができました。
有難うございました。

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!