Tools for bi- multiple exponential decay of a MRI pixel
Mostrar comentarios más antiguos
Hello Folk!
I would be really happy if someone could help me to solve this problem. A MRI dataset should be analysed according to the T2 FID and displayed within a bi or multiple exponential decay diagram (time vs. intensity).
My professor says, he does not know where but there should be programs within MATLAB. Therefore I would like to know if there are programs for that or how to construct a new script for that?
Probably you can help me?
Thanks in advance for all useful answers, Chris
Respuestas (2)
Henric Rydén
el 2 de Jun. de 2014
use fittype to create your fittype object, and pass that to the fit command. Something like this
g = fittype('a0*exp(-x/t2)','coefficients',{'a0','t2'});
f = fit(x,y,g);
You will likely need to set limits on your model. Here is an example where I limit a0 between 0 and +Inf, and t2 between 10 and 50:
opts = fitoptions(g)
opts.Upper = [Inf 50]
opts.Lower = [0 10]
1 comentario
Christoph
el 3 de Jun. de 2014
Henric Rydén
el 3 de Jun. de 2014
If you want another model, simply change this line
g = fittype('a0*exp(-x/t2)','coefficients',{'a0','t2'});
to something like this
g = fittype('a0*exp(-x/z1) + a1*exp(-x/z2)','coefficients',{'a0','a1','z1','z2'});
I don't know your exact model so adjust it to what you want to do. I tried running your code but there is an error here:
I=a=(:,2);
8 comentarios
Christoph
el 3 de Jun. de 2014
Henric Rydén
el 3 de Jun. de 2014
Editada: Henric Rydén
el 3 de Jun. de 2014
I don't know what you mean with the binary equation, but you get the fitted parameters from f after you applied your fit:
f = fit(x,y,g);
disp(f.a0)
Load the image with dicomread . To read the header, use dicominfo . The image you sent me is a 256-by-256 that contains only one echo, you need more echoes to do this analysis.
Christoph
el 3 de Jun. de 2014
Henric Rydén
el 4 de Jun. de 2014
Editada: Henric Rydén
el 4 de Jun. de 2014
No problem. This is a different question from your original one and you should post it separately next time. Once you've loaded your images in a 3D matrix A:
figure;
imshow(A(:,:,1),[])
h = impoint;
wait(h); % Double-click the ROI to finish
mask = h.createMask;
mask = repmat(mask,1,1,size(A,3)); % Make the mask 3D
y = A(mask);
Christoph
el 4 de Jun. de 2014
Henric Rydén
el 4 de Jun. de 2014
Are you asking how you load the images into A?
Christoph
el 6 de Jun. de 2014
Henric Rydén
el 9 de Jun. de 2014
The error occurs because you are passing a string to the imshow command. You need to load the image first, using dicomread (for DICOM files) or imread (for jpg, png, ...).
A=imread('fileName.IMA');
figure;
imshow(A,[]);
Categorías
Más información sobre Convert Image Type en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!