HOW TO CHANGE BINARY IMAGES TO 3D ARRAY (CONVERT TO 3D DIMENSION)

조회 수: 25 (최근 30일)
mohd akmal masud
mohd akmal masud 2021년 10월 7일
댓글: Image Analyst 2021년 10월 8일
Hi all, I have 41 binary images.
Anyone know how convert it into 3D?
I means now my binary images just have dimension(let say 256 x 256). Then how to add thickness (as example thickness: 2.332) into that binary images?
So that my binary images now in 3D, (example 256x256x2.332)
Anyone can help me?
  댓글 수: 6
Image Analyst
Image Analyst 2021년 10월 8일
No, that just overwrites I every iteration.
mohd akmal masud
mohd akmal masud 2021년 10월 8일
Hi sir Image Analyst, can you help me, maybe you can write the code?
Please help me sir?

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

채택된 답변

DGM
DGM 2021년 10월 8일
As per Rik's suggestion:
% ...
% assuming that your dicom images and binary images have same page geometry
numframes = 41;
s = [size(P,1) size(P,2)];
maskstack = zeros(s(1),s(2),numframes);
for f = 1:numframes
if f == 1
cast(maskstack,class(readimage(imds,f)));
end
maskstack(:,:,f) = readimage(imds,f);
end
% build location arrays
[X Y Z] = ndgrid(1:s(1),1:s(2),0:2.332:(numframes-1)*2.332);
Or something like that.
  댓글 수: 1
mohd akmal masud
mohd akmal masud 2021년 10월 8일
yah, dicom images and binary images have same page geometry.
but after that, how to develop it into 4D?
is it like this?
% to view as 4D
p = patch(isosurface(X, Y, Z));
axis equal
set(p,'FaceColor','c','EdgeColor','none');
alpha(p,1)
hold

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

추가 답변 (1개)

Image Analyst
Image Analyst 2021년 10월 8일
If you want, just consider your 256x256 image as having a thickness of 2.332 millimeters or centimeters or whatever. There is nothing to do to the image. However if you compute something like area of some region and want the volume in 3-D you have to multiply the area by the square of the lateral pixelsPerMm and then by the z-direction slice spacing of 2.332 to get the volume in mm.
  댓글 수: 2
mohd akmal masud
mohd akmal masud 2021년 10월 8일
yah..you are right sir. that is to get the volume,
but my problem is how to paste the binary image that have value 1 into the origional images (dicom images that have pixel value).
ok let me explain,
let say my origional images is
K = dicomread('image1.dcm');
note: let say the dimension is 256x256x2.332
after i do the segmentation, the binary image become binary images that have value 1 and 0. It is became 2D images because the method of segmentation have to do so.
then, i want mark it, the value 1 is foreground, and the value 0 background. because the origional image (dicom image) have pixel number each voxel.
below is the code that Ihave tried.
% For 3D images
clc
clear all
myFolder = ('C:\Users\Akmal\Desktop\I-131 256 28.02.2020\I-131 SPECT NEMA VALIDATION 01112019 256X256 26.09.2021 petang\dcmoriextract');
filePattern = fullfile(myFolder, '*.dcm'); % Change to whatever pattern you need.
theFiles = dir(filePattern);
for K = 1 : length(theFiles)
baseFileName = theFiles(K).name;
fullFileName = fullfile(theFiles(K).folder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
% Now do whatever you want with this file name,
% such as reading it in as an image array with imread()
P(:,:,K) = dicomread(fullFileName);
end
% For binary images
dataSetDir = fullfile('C:\Users\Akmal\Desktop\I-131 256 28.02.2020\I-131 SPECT NEMA VALIDATION 01112019 256X256 26.09.2021 petang');
imageDir = fullfile(dataSetDir,'bnwaftersegmentation');
imds = imageDatastore(imageDir);
for i = 1:41
% subplot(6,7,i)
I = readimage(imds,i);
end
% to view as 4D
p = patch(isosurface((P(I==1))));
axis equal
set(p,'FaceColor','c','EdgeColor','none');
alpha(p,1)
hold
but ihave problem in my binary images is 2D, so I got error like below
Error using smooth3 (line 51) V must be a 3D array.
THIS IS IMAGE THAT SUPPOSELY I WANT like below
can you help me sir?? Please..
Image Analyst
Image Analyst 2021년 10월 8일
Again, you're overwriting I on each iteration so it will only have the last image in it. I don't see where you're calling smooth3 but if you're passing it I, and if I is only a 2-D array, you'll get that error.

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

카테고리

Help CenterFile Exchange에서 Explore and Edit Images with Image Viewer App에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by