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

조회 수: 1 (최근 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에서 Image Processing Toolbox에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!