自分で指定した数の三次元配列の三次元表示

8 views (last 30 days)
virgo kk
virgo kk on 1 Aug 2019
Edited: Yoshio on 26 Aug 2019
同じ大きさ136*190の5枚の画像を読み込んでから空の三次元配列に読み込んだ画像の値を代入してz軸の値をずらしながら、三次元行列を作りました。
この三次元を表示したいのですが、エラーを吐いてしまい前に進めない状況です。本来は自分の設定した画像枚数で表示できると思うのですが、z軸を3で指定されている状況です。エラーは3で実行すれば消えますが自分のしたいことができないです。どなたか助けて頂きたいです。宜しくお願いします。
clear;clc
td = zeros(136,190,5);
for i = 1:5
td(:,:,i) =imread(sprintf('%d.jpg',i));
end
figure;
pcshow(td);
以下エラーメッセージです。
エラー: pcshow
xyzPointsの実際のサイズは 136x190x5 ですが、サイズは MxNx3 にする必要があります。
エラー: vision.internal.pc.validateAndParseInputsXYZC (line 19)
validateattributes(xyzPoints,{'numeric'}, {'real','size',[NaN,NaN,3]},filename,'xyzPoints');
エラー: pcshow>validateAndParseInputs (line 151)
[X, Y, Z, C] = vision.internal.pc.validateAndParseInputsXYZC(mfilename, varargin{1});
エラー: pcshow (line 99)
validateAndParseInputs(varargin{:});
エラー: no1 (line 13)
pcshow(td);

Accepted Answer

Toshinobu Shintai
Toshinobu Shintai on 1 Aug 2019
pcshowはカラー画像(width, height, color)を対象としているので
うまくいかないのではないでしょうか。
imshowを用いると、それぞれの行列を白黒の画像として表示できます。
また、単にそれぞれの行列の要素を数値で見たい場合はbar3, mesh, surfなどを用いてはどうでしょうか。
添付にサンプルを作成しましたのでご確認ください。
  5 Comments
Toshinobu Shintai
Toshinobu Shintai on 2 Aug 2019
詳細について教えてくださいまして、ありがとうございます。
自分から関わってきておいて何なのですが、私ではもう分かりませんので他の方に期待します。
virgo kk
virgo kk on 2 Aug 2019
わかりました。
お答え頂いて有難うございました。

Sign in to comment.

More Answers (1)

Yoshio
Yoshio on 26 Aug 2019
Edited: Yoshio on 26 Aug 2019
こちらに参考となる例があると思います。
MRIの画像表示も例もありますので、読んだ上で検討してみてください。

Categories

Find more on Image Processing Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!