座標から三次元再構築するには

7 views (last 30 days)
雄大
雄大 on 8 Nov 2022
現在、txtファイルとしてn行4列のファイルがあります。
1列目からx、y、zの座標になっており、4列目は2値化した輝度値になります。
このファイルを読み込んで、3次元的に図形を確認したいです。最終的には、3点を抽出してその3点を通るような断面を確認したいです。
その一歩として、まずはMATLABで形を確認したいです。
どうか知恵をお貸しいただけないでしょうか。よろしくお願いします。

Accepted Answer

交感神経優位なあかべぇ
Edited: 交感神経優位なあかべぇ on 8 Nov 2022
まず、Logのコピー.txtのデータ読み取りと、3次元の図形での確認方法の例を示します。
すみませんが、4列目の2値化した輝度値というのがよく分からなかったので、とりあえず4列目はグレースケール化して表示しました。
logData = readmatrix('Logのコピー.txt');
cData = repmat(logData(:,4) ./ 255, 1, 3); % 255:白 0:黒
s = scatter3(logData(:,1), logData(:,2), logData(:,3), 'CData', cData, 'Marker', '.', 'MarkerEdgeColor', 'flat');
次に3点を通る断面の確認ですが、少々実装が面倒でしたので、参考までに簡略化して、x座標が200の面の断面を表示(x座標が200未満点群を非表示)する例を示します。
isOver200X = logData(:,1) >= 200;
s.MarkerFaceAlpha = 'flat';
s.AlphaData = double(isOver200X);% X座標が200未満の点群を透明化
  4 Comments
Atsushi Ueno
Atsushi Ueno on 10 Nov 2022
> 色付けしない場合には”scatter3...”の行を変更すれば良いのでしょうか ⇒ はいそうです。
@交感神経優位なあかべぇさんの下記コードは、2値化した輝度値(元の範囲は0-255と思われる)を正規化し、同じデータを3列並べRGB成分(でのグレースケール色)として色指定しています。
cData = repmat(logData(:,4) ./ 255, 1, 3); % 255:白 0:黒
3列ではなく1列だと、カラーマップを参照します。カラーマップを"gray"に変更すれば1列の成分で色指定することができます。
colormap(gca,"gray")
交感神経優位なあかべぇ
> この断面を任意に決定することはどうしても難しいでしょうか。
App Designerなどを使用して、任意の断面を選択して出力できるアプリなどを作成してみてはいかがでしょうか?

Sign in to comment.

More Answers (0)

Categories

Find more on Read, Write, and Modify Image in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!