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?
Amal Felhi
Amal Felhi 2021 年 4 月 8 日
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 ExchangeNeuroimaging についてさらに検索

製品

リリース

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