필터 지우기
필터 지우기

半径r1, 中心座標 (x1, y1, z1) の球体の内側のピクセルの値をゲットしたい。

조회 수: 3 (최근 30일)
Yusaku Ohta
Yusaku Ohta 2020년 11월 6일
댓글: Yusaku Ohta 2020년 11월 7일
3D画像 (xyz)内の半径r1, 中心座標 (x1, y1, z1) の球体の内側のピクセルの値をゲットしたいです。
個々のピクセルの値には興味はなく、球体内のピクセルの色強度の平均値・SDといった統計量をゲットしたいです。
球体は1つではなく数百以上あるため、効率的に定量する方法を求めています。
教えて下さい。
半径 (r1, r2, r3 ...)と中心座標 ((x1, y1, z1), (x2, y2, z2), (x3, y3, z3) ...)の値は持っています。
私の説明が不十分であればお尋ねください。
よろしくお願いします。
  댓글 수: 2
Kenta
Kenta 2020년 11월 6일
こんにちは、ここでいう「3D画像」とは、点群のことですか?それともボクセルやボリュームイメージ(「ピクセル」がz方向に積み重なった感じ)でしょうか?
Yusaku Ohta
Yusaku Ohta 2020년 11월 6일
コメントありがとうございます。
ボクセルやボリュームイメージ(「ピクセル」がz方向に積み重なった感じ)の方です。
よろしくお願いします。

댓글을 달려면 로그인하십시오.

채택된 답변

Kenta
Kenta 2020년 11월 7일
clear;clc;close all
load mri
D = squeeze(D);
volshow(D)
[x, y, z]=meshgrid([1:siz(1)],[1:siz(2)],[1:siz(3)]);
r1=10;
cx=100;
cy=50;
cz=13;
% obtain the index of the voxel, where (x-cx)^2+(y-cy)^2+(z-cz)^2<r1^2
idx=find((x(:)-cx).^2+(y(:)-cy).^2+(z(:)-cz).^2<r1^2);
% extract the values
values=D(idx);
%%%%%%%% your code %%%%%%%%
% display the ROI extraction
vol=zeros(size(D));
vol(idx)=1;
volROI=double(D).*vol;
figure;volshow(volROI)
こんにちは、上のように球の方程式をつかって、値を取り出すことができると思います。念のためコードのほうもご確認ください。
  댓글 수: 1
Yusaku Ohta
Yusaku Ohta 2020년 11월 7일
Kenta様
indexを作るのが鍵なのですね。
大変参考になりました。
ありがとうございます。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 3 次元ボリューム イメージの処理에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!