質問: 自分の画像の形式とmatlab内のデータセットのmriを同じ形式にしたい 初めましてmatlabを使用しているものです プログラムを実行したいのですが、mri =load ('mri')とされています 元データがmatlabのデータセット27枚の128*128のsllice画像だとわかったのですが自身のもつ画像を同じ形式にしてプログラムを実行したいと考えています。 sizに関しては理解できます。 しかしd,mapに関しては手持ちの画像をどう変えればいいのかわかりません 手持ちの画像は256*256の画像を10枚です。 ファイル形式はdicom形式とbmp形式があります。可能な方で進めようと考えています ご教授頂けると幸いです。
回答: 回答がついていないようなので。 何をどうしたいのかよくわかりませんが、エスパーすると ・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