MATLAB Answers

0

二次元画像のスタック​の方法を教えていただ​きたいです。

Asked by virgo kohei on 25 Jul 2019
Latest activity Commented on by Kenta Itakura on 2 Aug 2019
大量の二次元画像を積み重ね、(stack)して3Dモデルとして表示したいと考えています。
イメージとしては、三次元のz軸方向をずらしながら画像を積み重ねるイメージです
画像の種類はJPEGです。
よろしくお願いします。

  2 Comments

Kenta Itakura on 25 Jul 2019
ちなみにですが、例となるようなデータなどはございますか。
イメージ的には、関数catなどで、4次元方向に積み重ねながら、下の例のようなデータを作って可視化すればよいのではないかと考えています。
I=imread('n-th_img.jpg');
s= cat(4,s,I);
virgo kohei on 26 Jul 2019
返信有難うございます。データは、持ち出し不可なので詳細だけお伝えさせていただきます。データは元々拡張子dicomです。CTのスライス画像であったものをトリミング処理するために一度jpegに変換してからトリミングを行っています。画像サイズは136*190です。
以下現在までに作成しているコードです。
よろしくお願い致します。
clear;
for i=1:5
% {} = cell array
images{i} = imread(sprintf('%d.jpg',i));
I{i} = (images{i});
end
%画像の番号順読み込みループ
td = zeros(136,190,5);   % 空の三次元配列データを追加
for i = 1:5
td(136,190,i) = I(i) %空の三次元配列にz軸をずらしながら代入していく
end
%エラーメッセージ
>> no1
cell から double に変換できません。
エラー: no1 (line 11)
td(136,190,i) = I(i)

Sign in to comment.

2 Answers

Answer by Kenta Itakura on 26 Jul 2019
 Accepted Answer

clear;clc
td = zeros(136,190,5);  
for i = 1:5
td(:,:,i)=imread(sprintf('%d.jpg',i))
end
対象画像は5枚で、グレースケールということで正しいですか。それならばこのようにすれば読み取れると思うのですがいかがでしょうか

  2 Comments

virgo kohei on 26 Jul 2019
返信有難うございます。
ご指摘通り、対象画像5枚グレースケール画像です。
上のコードで読み取りをすることができました。有難うございます。
問題はここからで、この読み取った画像を重ねて、三次元表示で表したいというのが本題です。
イメージをお伝えすると、四角形の二次元画像をz軸にずらしながら積み重ねていくと、角柱のような図形で表せると思います。この図形を表示したいということです。
Kenta Itakura on 26 Jul 2019
ちょうど上のようなイメージでしょうか?ここのコードに習って試せば、似たようなものは見れると思うのですが、いかがでしょうか。

Sign in to comment.


Answer by virgo kohei on 26 Jul 2019

ct_img_02.jpg
返信有難うございます。
少しイメージと離れていて、
上のようなCTの画像を積み重ねていくと下のような不完全ではあると思いますが、円柱になると思います。
この円柱の体積を求めるために、画像をスタックしてモデルとして表示したいです。
thumbnail.png

  13 Comments

Kenta Itakura on 2 Aug 2019
td(x,y,z)>=0の0という閾値を変えればよいです。今回は0以上なので全てが表示されます。実際は特定の輝度値以上のみを表示されるのですが、100くらいですかね?
virgo kohei on 2 Aug 2019
有難うございます。
100以上にしても上と同様の3dイメージが表示されます。
144以上などコマンドプロンプトで表示されていた配列の中身の中央値も入れてみましたが、
同様のイメージでした。
Kenta Itakura on 2 Aug 2019
そうですね、例えば180・200・220などでもダメですか?
そのデータを扱ったことがないので、現状の情報だけではよくわかりません...
その値を変える・輝度もいれて見やすくするなど、いろいろと検討して教えてください!

Sign in to comment.