Hi Steve,
I'm at a loss as to how to fix this problem. I have tracked down where the problem first appears.
The output .ppm from slicer is not what I expected. When I use the -A 4500 (90*1.25*40) switch,
I expected the output .ppm file to be 4500 pixels wide with 40 slices on a single row.
Instead the output .ppm file is 4407 pixels wide -- (90*1.25*39)+padding -- with 39 slices on a
single row and the last slice on a second row.
The voxel size for the input volume to slicer is:
% alias avwdim
avwhd !* | egrep "(dim[0-4]|orient|descrip)"
% avwdim 20050930_5_1R_002_39dup_redux_6504
dim0 3
dim1 90
dim2 86
dim3 40
dim4 1
pixdim0 0.0000000000
pixdim1 0.4379999936
pixdim2 0.4379999936
pixdim3 2.2999999523
pixdim4 1.0000000000
descrip FSL4.0
orient 0
So the images wrap onto a second row. How can I stop the wrapping and keep all slices on the
same row? Does it have to do with the pixel dims?
The reason I ask this is because I want to create a ppm/gif file with a single row of all slices.
I then chop it up into 8-many segments (each with 5 slices) that then get stacked one on top of
the other.
But I am getting the chopping points wrong because the ppm/gif file is not 4500 in width but
(4407 with 2rows).
This problem does not occur when slicer is called with no -s <scale> switch.
This is the code I am running (perl calling fsl utilities):
fslroi /home/bettyann/data/20050930_5_1R_002_39dup
/tmp/20050930_5_1R_002_39dup_redux_6504 213 90 189 86 0 40 0 1
fslstats /tmp/20050930_5_1R_002_39dup_redux_6504 -r
30886.435547 742457.375000
avwhd /tmp/20050930_5_1R_002_39dup_redux_6504 | cat -v | egrep '^dim[1-3]' | sed -e
's/^dim. *//'
90
86
40
xDim >>90<< yDim >>86<< zDim >>40<<
gifWi = 4500 x gifHi = 108
numPerRow = 5; rows = 8; wi = 563; hi = 108
[[ where:
gifWi = 4500 = ceil( 90 * 1.25 * 40 )
gifHi = 108 = ceil( 86 * 1.25 )
wi = 563 = ceil( 90 * 1.25 * 5 )
hi = 108 = ceil( 86 * 1.25 )
]]
slicer /tmp/20050930_5_1R_002_39dup_redux_6504 -lut greyscale -s 1.25 -u -i
30886.435547 742457.375000 -A 4500 tmp.ppm
convert -colors 100 tmp.ppm gif:tmp.gif
# crop gifFile and stack
convert -background black -bordercolor grey10 -crop 563x108+0+0 tmp.gif -crop
563x108+563+0 tmp.gif -crop 563x108+1126+0 tmp.gif -crop 563x108+1689+0 tmp.gif -
crop 563x108+2252+0 tmp.gif -crop 563x108+2815+0 tmp.gif -crop 563x108+3378+0
tmp.gif -crop 563x108+3941+0 tmp.gif -append -bordercolor grey10 -border 1x1 tmp.gif
Any suggestions as to how to get these numbers correct into/from slicer? All help is appreciated.
Thanks,
- BettyAnn
>Hi - the dimension issues probably either relate to padding (see:
>
>http://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ind0802&L=FSL&P=R24346&I=-
3&X=3A4B33738BF1244419&Y=steve%40fmrib.ox.ac.uk&m=11357
>
>), or getting the output pixel dimensions right given different voxel
>side lengths in the different directions (the output pixels have to
>map to the right real-world aspect ratio not voxel counts).
>
>Wrt sagittal slices, you would do something like
>
>slicer inVol -x -1 pic1.ppm -x -2 pic2.ppm etc.
>
>If you want the -A switch to apply in a different direction you would
>need to first use fslswapdim
>
>Cheers.
>
>
>
>
>
>On 14 Apr 2008, at 22:49, Bettyann Chodkowski wrote:
>> Hi All,
>>
>> I am using FSL v3.3 on unix/sun solaris although I did use v4.0.2,
>> too, with the same results.
>>
>> I am trying to use slicer to create a "lightbox" view as a gif file.
>> The input volume dimensions are [ 90 x 86 x 40 ] (after using avwroi+
>> +/fslroi).
>>
>> The commands I use are:
>> % slicer inVol -lut greyscale -s 1.25 -u -i 0 742470 -A 4500
>> inVol.ppm
>> % convert -colors 100 inVol.ppm gif:inVol.gif
>>
>> I expected the output ppm/gif files to have these dimensions:
>> x: 90 * 40 * 1.25 = 4500 (ie, xdim * numSlices * slicerScale)
>> y: 86 * 1.25 = 107.5 (ydim * slicerScale)
>>
>> (Not sure what to do with fractional voxels -- floor or ceil?)
>>
>> But the resulting ppm/gif files do not have the dimensions I expected:
>>
>> % montage -verbose inVol.ppm /dev/null
>> inVol.ppm PNM 4407x216+0+0 PseudoClass 256c 8-bit 929.6kb 0.080u 0:01
>>
>> % montage -verbose inVol.gif /dev/null
>> inVol.gif GIF 4407x216+0+0 PseudoClass 128c 8-bit 255.1kb 0.120u 0:01
>>
>> Can anyone help me with my confusion?
>>
>>
>> Also, in light of a previous question about using slicer to get a
>> sagittal view, I see the -x/y/z
>> <slice> switch. Do I need to specify each slice I want:
>>
>> slicer inVol ... -x -1 -2 -3 ... inVol.ppm
>> or
>> slicer inVol ... -x -1 -x -2 -x -3 ... inVol.ppm
>>
>> Is there an equivalent to the -A switch but for the other
>> orientations (sagittal and coronal)?
>>
>>
>> Thanks for any help,
>> - BettyAnn
>>
>
>
>--------------------------------------------------------------------------
-
>Stephen M. Smith, Professor of Biomedical Engineering
>Associate Director, Oxford University FMRIB Centre
>
>FMRIB, JR Hospital, Headington, Oxford OX3 9DU, UK
>+44 (0) 1865 222726 (fax 222717)
>[log in to unmask] http://www.fmrib.ox.ac.uk/~steve
>--------------------------------------------------------------------------
-
>===========================================================
==============
|