二次元画像のスタックの方法を教えていただきたいです。
Afficher commentaires plus anciens
大量の二次元画像を積み重ね、(stack)して3Dモデルとして表示したいと考えています。
イメージとしては、三次元のz軸方向をずらしながら画像を積み重ねるイメージです
画像の種類はJPEGです。
よろしくお願いします。
2 commentaires
Kenta
le 25 Juil 2019
ちなみにですが、例となるようなデータなどはございますか。
イメージ的には、関数catなどで、4次元方向に積み重ねながら、下の例のようなデータを作って可視化すればよいのではないかと考えています。
I=imread('n-th_img.jpg');
s= cat(4,s,I);
Réponse acceptée
Plus de réponses (1)
virgo kk
le 26 Juil 2019
0 votes
13 commentaires
Kenta
le 26 Juil 2019
[x y z]=size(td);
a=1;
for i=1:x
for j=1:y
for k=1:z
if td(x,y,z)>200
list(a,1)=x;
list(a,2)=y;
list(a,3)=z;
a=a+1;
end
end
end
end
figure;pcshow(pointCloud(list))
ありがとうございます。そのようなイメージなのですね、かなり平べったいようになると思いますが、3D点群のように見るのではどうでしょうか。はじめのコードでtdを作成したあとに、このコードを実行したら、3D表示がされませんでしょうか。対象は白く表示されるのでしょうか。ここでは輝度が200以上のボクセルのみを対象として拾っています。対象にあわせて閾値設定をしてください。
普通は、sub2indなどで、もう少し効率よく書くかと思いますが、見やすくするためにうえのように書いています。
Kenta
le 1 Août 2019
どの行が実行できませんか?listは変数名で、関数ではありません。
pcshowが実行できないのでしょうか。もしかしたらこちらのコードが間違っている可能性もあります。詳しく状況をおしえてください
Kenta
le 1 Août 2019
listを全てLにして、再度実行していただけますか?
virgo kk
le 1 Août 2019
td(x,y,z)>0にしてみてはどうですか、ピクセル値は基本的に0以上ですよね?
Lが未定義です、というのは、多分ピクセル値が200以上のものはなくて、変数が作られなかったのだと思います。さきほどとはエラーの文が変わっていることから推測されます。
[x y z]=size(td);
a=1;
for i=1:x
for j=1:y
for k=1:z
if td(x,y,z)>=0
list(a,1)=x;
list(a,2)=y;
list(a,3)=z;
list(a,4)=td(x,y,z);
a=a+1;
end
end
end
end
figure;pcshow(pointCloud(list))
[x y z]=size(td);
a=1;
for i=1:x
for j=1:y
for k=1:z
if td(x,y,z)>=0
list(a,1)=i;
list(a,2)=j;
list(a,3)=k;
a=a+1;
end
end
end
end
figure;pcshow(pointCloud(list))
エラーに従い、M×3でやってみましたか?
ptCloudの変数を作って'color'で輝度値のベクトルを指定したら輝度も表示できますので
やってみてください
このリンクを見れば、輝度の表示もできます。
Kenta
le 2 Août 2019
td(x,y,z)>=0の0という閾値を変えればよいです。今回は0以上なので全てが表示されます。実際は特定の輝度値以上のみを表示されるのですが、100くらいですかね?
virgo kk
le 2 Août 2019
Kenta
le 2 Août 2019
そうですね、例えば180・200・220などでもダメですか?
そのデータを扱ったことがないので、現状の情報だけではよくわかりません...
その値を変える・輝度もいれて見やすくするなど、いろいろと検討して教えてください!
Catégories
En savoir plus sur Image Processing Toolbox dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





