🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Q&A

解決済

1回答

1574閲覧

matlab: 二次元画像を三次元化した際の等値面表示が上手くいかない

virgo_556

総合スコア6

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

0グッド

0クリップ

投稿2019/12/09 09:11

編集2019/12/13 05:44

初めましてmatlabを利用しているものです
256256のグレースケール画像(bmp形式)10枚を利用して
三次元形状表示を行いたいと思っています
今現在はフォルダ内にある画像10枚を3次元化し
ボリュームデータの三次元表示を行う旨のコードを作成し実行を行いましたが、
256
256の面が表示されるのみで上手く表示が上手くできません
解決の糸口が見つからず困っています
宜しくお願いします

MATLAB

1コード 2clear; % 初期化 3 4%% BMP画像の読込み・element3D 5 6fileFolder = fullfile(pwd); 7bmpFiles = dir(fullfile(fileFolder,'*.bmp')); 8numfiles = length(bmpFiles); 9bmp = imread(bmpFiles(1).name); 10grayscale = zeros(size(bmp,1),size(bmp,2),numfiles); 11for k = 2:numfiles 12 grayscale(:,:,k) = imread(bmpFiles(k).name); 13end 14 15 16%% 元データのボリュームデータの3次元表示 %%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 18vol = isosurface(grayscale, 5); % 一番外の側面:値5の等値面の、頂点と面を求める(背景は値0) 19figure; patch(vol, 'FaceColor','red', 'EdgeColor','blue'); % 等値面を表示 20view(-40,24) % 視点の位置 21daspect([1 1 0.3]) % X,Y,Z方向のアスペクト比の設定 22colormap(gray); box on; camlight; lighting gouraud; % 照明等各種設定    goraudで色が滑らかに変化するように

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki23

2019/12/11 10:29

使用している画像データを添付なりアップロードなりしてください
virgo_556

2019/12/12 06:29

画像を添付しました
guest

回答1

0

自己解決

解法はcat関数を使用してint16⇒uint8への変更を行った後等値面を表示を行う
bmp形式では残念ながら直方体の表示になるため、異なるフォーマットでの実行が必要

投稿2019/12/13 05:46

virgo_556

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問