VOL_MARKER Procedure
Displays colored markers scattered throughout a volume.
Usage
VOL_MARKER, vol, n_points
Input Parameters
vol—A 3D volume of data to plot markers in.
n_points—The number of markers to plot.
Keywords
Axis_Color—The color to use when plotting the axis. To suppress the axis, set Axis_Color to –1.
Copy—If specified, preserves the input variable, vol. If this keyword is not specified, the input variable is altered during processing.
Mark_Size—The maximum marker size.
Mark_Symbol—A number specifying the marker symbol to use. The number should be between 1 and 7. The default is 2 (an asterisk). For a list of symbols, see the description of !Psym in System Variables.
Mark_Thick—The maximum line thickness to use when plotting markers. Typically, this is an integer between 1 and 7. (A thickness of 1.0 is normal, 2.0 is twice as wide, and so on.)
Discussion
VOL_MARKER plots a polymarker field from volumetric data. The color of each marker displayed by VOL_MARKER is determined by the value of the volumetric data at the point where the marker is plotted.
Unless the Copy keyword is specified, the original input variable is altered.
Examples
This program displays an MRI scan of a human head using three different display techniques.
; Specify the size of the volumes.
volx = 115
voly = 75
volz = 105
; Specify the window size.
winx = 512
winy = 512
head = BYTARR(volx, voly, volz)
; Read in the volumetric data.
OPENR, 1, !Data_Dir + 'man_head.dat'
READU, 1, head
CLOSE, 1
band = 5
; Pad the volume with zeroes and smooth it.
head = VOL_PAD(head, band)
head = SMOOTH(head, band)
; Set up the viewing window and load the color table.
CENTER_VIEW, Xr=[0, 124], Yr=[0, 84], Zr=[0, 114], Az=60.0, $
Ax=(-60.0), Winx=512, Winy=512, Zoom=0.9
WINDOW, 0, XSize=winx, YSize=winx, XPos=16, YPos=384, $
Colors=128
LOADCT, 9
; Render the data using a 3D polymarker field.
VOL_MARKER, head, 6000, Axis_Color=100, Mark_Symbol=2, $
Mark_Size=2, Mark_Thick=2
; Create a second window for plotting.
WINDOW, 1, XSize=winx, YSize=winx, XPos=496, YPos=324, $
Colors=128
; Change the direction of the light source for shading.
SET_SHADING, Light=[-1.0, 1.0, 0.5], /Gouraud, /Reject
; Compute the 3D contour surface as a list of polygons.
SHADE_VOLUME, head, 18, vertex_list, polygon_list, /Low
; Display the polygon list with light source shading.
TVSCL, POLYSHADE(vertex_list, polygon_list, $
XSize=winx, YSize=winy, /Data, /T3d)
; Create another window for plotting.
WINDOW, 2, XSize=winx, YSize=winy, XPos=256, YPos=48, $
Colors=128
; Transform the volumetric data to the current view.
head = VOL_TRANS(head, 128, !P.T)
; Display a translucent image of the data.
TVSCL, VOL_REND(head, winx, winy, Depth_Q=0.4)