Hi
Yes, 4500 = 90*40*1.25, but that means that each single slice would be
90*1.25 =112.5 pixels wide - not an integer!
Short answer is to decrease the -s parameter, e.g. -s 1.24 will give
you what you want with a final plot of size 4480 pixels or to keep it
at 1.25 and increase max width to 4520
Long answer is that the width/height of the plots are calculated so
that the aspect ratio is approximately right when mapped into pixel
space. The width parameter of the -A or -S option specifies the
_maximum_ width you want to allow.
Given your multiplier of 1.25 you end up with multiples of 113
(round(90 * 1,25)) in x dim and then get 4407 = 113 *39 as 113*40 =
4520 exceeds your chosen max width. The final slice then ends up in
the next row. With a multiplier of 1.24 you get multiples of 112 and
40*112 = 4480.
hth
Christian
On 15 Apr 2008, at 19:53, Bettyann Chodkowski wrote:
> 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
>> --------------------------------------------------------------------------
> -
>> ===========================================================
> ==============
|