Bonjour à tous j'ai en entrée 25 images IRM(dicom).
je metsen un point fixe (x,y) et je garde l'emplacement de ce pixel pour les autres images.
je veux tracer la courbe de progression de ce pixel. comment programmer ça?
Hello everyone, I have 25 MRI images (dicom) as input. I put a fixed point (x, y) and I keep the location of this pixel for the other images. I want to plot the progression curve of this pixel. how to program that?

댓글 수: 20

Rik
Rik 2021년 4월 8일
How does my answer not work for you?
Also, you should mention the release you're using if you're using a release as old as R2014b.
Amal Felhi
Amal Felhi 2021년 4월 8일
acutually my image is not 3D so i think that's why it didn't work for me and yes i'm using R2014b if u have another proposition i'll be glad and thanks
Rik
Rik 2021년 4월 8일
You have 25 images, each image being 2D. That means you can store it in a 3D array. If you didn't, how did you store your images?
Image Analyst
Image Analyst 2021년 4월 8일
Might get more answers if it were translated into English. Some of us don't know what is being asked unless we take the trouble to go to Google Translate.
Amal Felhi
Amal Felhi 2021년 4월 8일
how I will store the 25 images in a 3D array?
Rik
Rik 2021년 4월 8일
What size are your 25 images and how do you load them?
i load the 25 images with this codes:
rep = uigetdir;
Imgs = dir(rep);
thisname = Imgs(3).name;
[path,name,ext]=fileparts(thisname);
ext=strcat('*',ext);
chemin = fullfile(rep,ext);
list = dir(chemin);
nbr_images= numel(list);
for n=1:numel(list)
k=dicomread(fullfile(rep, list(n).name));
end;
IM=double(img);
figure(1),subplot(5,5,1),imshow(IM,[]);
figure(1),subplot(5,5,2),imshow(IM,[]);
figure(1),subplot(5,5,3),imshow(IM,[]);
figure(1),subplot(5,5,4),imshow(IM,[]);
figure(1),subplot(5,5,5),imshow(IM,[]);
figure(1),subplot(5,5,6),imshow(IM,[]);
figure(1),subplot(5,5,7),imshow(IM,[]);
figure(1),subplot(5,5,8),imshow(IM,[]);
figure(1),subplot(5,5,9),imshow(IM,[]);
figure(1),subplot(5,5,10),imshow(IM,[]);
figure(1),subplot(5,5,11),imshow(IM,[]);
figure(1),subplot(5,5,12),imshow(IM,[]);
figure(1),subplot(5,5,13),imshow(IM,[]);
figure(1),subplot(5,5,14),imshow(IM,[]);
figure(1),subplot(5,5,15),imshow(IM,[]);
figure(1),subplot(5,5,16),imshow(IM,[]);
figure(1),subplot(5,5,17),imshow(IM,[]);
figure(1),subplot(5,5,18),imshow(IM,[]);
figure(1),subplot(5,5,19),imshow(IM,[]);
figure(1),subplot(5,5,20),imshow(IM,[]);
figure(1),subplot(5,5,21),imshow(IM,[]);
figure(1),subplot(5,5,22),imshow(IM,[]);
figure(1),subplot(5,5,23),imshow(IM,[]);
figure(1),subplot(5,5,24),imshow(IM,[]);
figure(1),subplot(5,5,25),imshow(IM,[]);
on this zip files you will find the 25 images
Rik
Rik 2021년 4월 8일
편집: Rik 2021년 4월 8일
Please delete the zip file, as it seems to contain actual patient information.
I expect you can use this in your loop to load your images to a 3D array:
IM=dicomread(fullfile(rep, list(1).name));
IM(1,1,numel(list))=0;%extend array to fit all slices
for n=2:numel(list)
IM(:,:,n)=dicomread(fullfile(rep, list(n).name));
end
And your other block of code can be replaced by something this:
figure(1),clf(1)
WW_WL=[min(IM(:)) max(IM(:))];
for n=1:25
subplot(5,5,n)
imshow(IM(:,:,n),WW_WL)
end
Or simply:
montage(permute(IM,[1 2 4 3]),'DisplayRange',[0 1000])
Amal Felhi
Amal Felhi 2021년 4월 8일
okay thank you so much.
after the code of the 3D array , i put this code for progression of the pixel?
S=load('mri');
I=squeeze(S.D);
x=randi(size(I,1));y=randi(size(I,2));
intensity=squeeze(I(x,y,:));
plot(intensity)
Rik
Rik 2021년 4월 9일
The first two lines load an example image and the third line selects random coordinates. That means you only need the last two lines.
Amal Felhi
Amal Felhi 2021년 4월 9일
there is an error it does not work
Rik
Rik 2021년 4월 9일
All the subplot code is not necessary, you can replace it with the loop.
You made the command window so small that I can't see the full error message. Did you define a value for x and y?
Amal Felhi
Amal Felhi 2021년 4월 9일
ok thanks it works.
Rik
Rik 2021년 4월 9일
You're welcome. If you feel my answer solved your problem, please consider marking it as accepted answer. If not, feel free to comment with your remaining issues.
Amal Felhi
Amal Felhi 2021년 4월 9일
Alright!
otherwise yes I have another problem I want to create a GUI interface which contains a push button, an axis and a popupmenu. from the push button I select 25 images and these 25 images will be saved in a popup menu. for example if I click on the 1st item of the popupmenu I display the 1st image
Rik
Rik 2021년 4월 9일
Did I already point you to this thread?
Amal Felhi
Amal Felhi 2021년 4월 9일
yes but my problem is not solved.
my problem in saving 25 images the popupmenu
Rik
Rik 2021년 4월 9일
You can use the popmenu callback to update the image. You can store the 25 images in the guidata struct. What exactly is the part you have trouble with?
Amal Felhi
Amal Felhi 2021년 4월 9일
my problem the update of the 25 images on the popmenu.
can you send to me the code of the update?
Rik
Rik 2021년 4월 10일
You can either use imshow (use the axes object handle), or you can set the CData property of an image object (which is the output of the imshow function).

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

 채택된 답변

Rik
Rik 2021년 4월 7일

0 개 추천

%load an example image
S=load('mri');
I=squeeze(S.D);
x=randi(size(I,1));y=randi(size(I,2));
intensity=squeeze(I(x,y,:));
plot(intensity)

댓글 수: 4

Amal Felhi
Amal Felhi 2021년 4월 7일
merci pour votre réponse mais je veux choisi un pixel à partir d'une image IRM (dicom) je garde l'intensité de ce pixel pour les 25 images pour tracer la courbe de progression de ce pixel
Rik
Rik 2021년 4월 7일
The example I used actually is an MRI image, just not DICOM. If you have stored your image as a 3D array, you can use this code to trace the intensity. Can you explain why my code doesn't work for you?
Amal Felhi
Amal Felhi 2021년 4월 7일
votre code me donne ce resultat:
Rik
Rik 2021년 4월 7일
You should put in your own image and coordinates. It can happen that an x-y-combination is 0 for all z values. This will happen around the edge. Unfortunately, this example image is about half edge, so if you want to use random coordinates, you will get this line about half the time.

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Neuroimaging에 대해 자세히 알아보기

제품

릴리스

R2014b

질문:

2021년 4월 7일

댓글:

Rik
2021년 4월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by