LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

MRI Simulation - need guidance

Hi All,

 

I am looking for guidance towards designing a LabVIEW based MRI simulation.  I am a bit lost and would appreciate any advice.

 

Here is the main goal of the simulator:  


**Have the user be able to adjust where along the z-axis a cross-sectional image of an arbitrary 3D collection of shapes is produced.  Also be able to adjust the "density" of each of the shapes and show a corresponding change in the cross-sectional image (higher density objects will have a darker cross section)**

 

The simulator does not have to send a signal / measure the induced RF response/phase from individual atoms or any of that. 

 

I want to do the following to get started:

 

  • Initialize a collection of several 3D surfaces (simple ones such as elongated spheres, cubes, cylinders) on the same graph using the "3D Parametric Surface VI
  • Define a user-controllable density value for each of the shapes.
  • Let the user control where on the Z-axis a cross sectional image is formed.
 
If you could give suggestions on the best way to perform the above, it would be much appreciated.  If this is not the best way to do it, please let me know of a better alternative.
 
Thanks 

 

0 Kudos
Message 1 of 25
(4,155 Views)

gastro54 wrote:

 

  • Initialize a collection of several 3D surfaces (simple ones such as elongated spheres, cubes, cylinders) on the same graph using the "3D Parametric Surface VI
  • Define a user-controllable density value for each of the shapes.
  • Let the user control where on the Z-axis a cross sectional image is formed.

MRI data is certainly not a collection of 3D shapes, but a 3D array of values (shades). As a first step, you should map your shapes into a 3D array. Extracting planes can then be easily done using "index array" with two of the dimensions disconnected. If you want to get data at noninteger indices or slanted planes, you would use e.g. trilinear interpolation.

 

 

Message 2 of 25
(4,127 Views)

This thread may help. Here is a preview.

 

 

Bubbles in fluid flow (pink) 

 

 

Cross-section of mouse tendon.

 

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 3 of 25
(4,114 Views)

Awsome: thanks for the replies - very helpful.

 

I looked through the thread you posted, Ben, and was particularly interested in the mouse tendon stuff.

 

I saw that the mouse tendon intensity data was in the form of a 1D unsigned array and that it represents a series of 100 256x256 image slices.

 

Is each 1-256, 257-512, etc group of elements in the array a single line in a particular slice?  (So 256 "groups" of elements in the array would constitute a single 2D slice)?

 
If this is true, how does the indexing on the input to the for loop control the output to the intensity graph?  What determines the number of iterations the for loop runs through? Is it determined by the "PlotAreaSize" property node? 

 

I was able to reconstruct the 3D visualization vi you constructed to display the data as a solid 3d object using ActiveX stuff (that I don't understand completely).  

 

What I will do next is try to find some real MRI datasets of interesting anatomical features, convert the dataset into the same format as the "mouse tendon data" and apply the same imaging techniques. 

 

 

 

 

0 Kudos
Message 4 of 25
(4,097 Views)
OK, I just realized it isn't a 1D array, that was dumb.  I understand the indexing now
0 Kudos
Message 5 of 25
(4,075 Views)

gastro54 wrote:

Awsome: thanks for the replies - very helpful.

 

...

 

What I will do next is try to find some real MRI datasets of interesting anatomical features, convert the dataset into the same format as the "mouse tendon data" and apply the same imaging techniques. 

 

 

 

 


Cool!

 

 

please post sample code to help others (and entertain me Smiley Wink )

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 6 of 25
(4,057 Views)

 

OK - I found a sweet animated gif with 140 frames on wikipedia of a cranial MRI scan.

 

Is there any way to convert this to a 3D 256x256x140 intensity stack array?

 

 

 

 

Message Edited by gastro54 on 04-16-2009 10:43 PM
0 Kudos
Message 7 of 25
(4,017 Views)

OK I just found this thread: http://forums.ni.com/ni/board/message?board.id=170&thread.id=347413&view=by_date_ascending&page=1

 

Looks like I might be able to use this GIF reader, but I don't have the IMAQ package.  Would someone be willing to use IMAQ's imagetoarray function to build a 3D array for me? 

0 Kudos
Message 8 of 25
(3,995 Views)

When last I looked at Mike's code it did not require add-ons like imaging. His code doesn't work?

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 9 of 25
(3,981 Views)
I tried loading the gif with the Gif.Example.VI he included in the package, but it did not display the animation.  I'm not sure if the GIF is the correct 89a image format.  I opened the animated GIF in Adobe Fireworks, but I don't see the option to save as a particular animated GIF file format.
0 Kudos
Message 10 of 25
(3,971 Views)