<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=WordSection1>
<p class=MsoNormal>Hi all,<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> I’m
running into an issue with the data scaling. I have an image stack
composed of 36 image planes and each image plane is 400 x 400 pixels
wide. I’m using the scaling of: x = <span style='font-size:10.0pt;
font-family:"Courier New"'>0.073567003 microns/pixel, y = 0.073965006
microns/pixel and z = 1 micron/pixel.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'> In
my code, I call the <span style='color:#010001'>SetDataSpacing</span>(0.073567003,0.073965006,1.0000000),
but the image is always a fairly flat box, rather than a square. Not sure
what’s going on.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>My
code:<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>___________________<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'>void</span><span style='font-size:10.0pt;
font-family:"Courier New"'> <span style='color:#010001'>ImageSliceItem</span>::<span
style='color:#010001'>loadImageVolume</span>()<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'>{<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>m_pReader</span> = <span style='color:#010001'>vtkSmartPointer</span><<span
style='color:#010001'>vtkTIFFReader</span>>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:green'>// Get the input file prefix.<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:blue'>int</span> <span style='color:#010001'>lastIndex</span> = <span
style='color:#010001'>m_inputFile</span>.<span style='color:#010001'>lastIndexOf</span>(<span
style='color:#A31515'>"_"</span>);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>QString</span> <span style='color:#010001'>m_inputFilePrefix</span>
= <span style='color:#010001'>m_inputFile</span>.<span style='color:#010001'>left</span>(<span
style='color:#010001'>lastIndex</span> + 1);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:green'>// Set up the rest of the reader configuration<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>m_pReader</span>-><span style='color:#010001'>SetFilePrefix</span>(<span
style='color:#010001'>m_inputFilePrefix</span>.<span style='color:#010001'>toStdString</span>().<span
style='color:#010001'>c_str</span>());<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>m_pReader</span>-><span style='color:#010001'>SetFilePattern</span>(<span
style='color:#A31515'>"%s%03d.tif"</span>);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>m_pReader</span>-><span style='color:#010001'>SetDataScalarTypeToUnsignedChar</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>m_pReader</span>-><span style='color:#010001'>SetNumberOfScalarComponents</span>(3);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>m_pReader</span>-><span style='color:#010001'>SetDataOrigin</span>(0,0,0);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>m_pReader</span>-><span style='color:#010001'>SetDataSpacing</span>(0.073567003,0.073965006,1.0000000);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:green'>// Get the size of the stack<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>QString</span> <span style='color:#010001'>rightPart</span>
= <span style='color:#010001'>m_inputFile</span>.<span style='color:#010001'>right</span>(<span
style='color:#010001'>m_inputFile</span>.<span style='color:#010001'>length</span>()
- <span style='color:#010001'>lastIndex</span> - 1);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>lastIndex</span> = <span style='color:#010001'>rightPart</span>.<span
style='color:#010001'>lastIndexOf</span>(<span style='color:#A31515'>"."</span>);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>QString</span> <span style='color:#010001'>m_stackIndex</span>
= <span style='color:#010001'>rightPart</span>.<span style='color:#010001'>left</span>(<span
style='color:#010001'>lastIndex</span>);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:green'>// Put the size of your image here (-1). If your
image is 1024 x 768,<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:green'>// then you have (0, 1025, 0, 767, 0, (last value
computed))<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:blue'>int</span> <span style='color:#010001'>test</span> = <span
style='color:#010001'>m_stackIndex</span>.<span style='color:#010001'>toInt</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>m_pReader</span>-><span style='color:#010001'>SetDataExtent</span>(0,
399, 0, 399, 0, <span style='color:#010001'>m_stackIndex</span>.<span
style='color:#010001'>toInt</span>());<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>m_pReader</span>-><span style='color:#010001'>UpdateWholeExtent</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>vtkSmartPointer</span><<span style='color:#010001'>vtkImageLuminance</span>>
<span style='color:#010001'>pLuminanceFilter</span> = <span style='color:#010001'>vtkSmartPointer</span><<span
style='color:#010001'>vtkImageLuminance</span>>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pLuminanceFilter</span>-><span style='color:#010001'>SetInput</span>(<span
style='color:#010001'>m_pReader</span>-><span style='color:#010001'>GetOutput</span>());<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>vtkSmartPointer</span><<span style='color:#010001'>vtkImageAppendComponents</span>>
<span style='color:#010001'>pAppendComponent</span> = <span style='color:#010001'>vtkSmartPointer</span><<span
style='color:#010001'>vtkImageAppendComponents</span>>::<span
style='color:#010001'>New</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pAppendComponent</span>-><span style='color:#010001'>SetInput</span>(<span
style='color:#010001'>m_pReader</span>-><span style='color:#010001'>GetOutput</span>());<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pAppendComponent</span>-><span style='color:#010001'>SetInput</span>(1,<span
style='color:#010001'>pLuminanceFilter</span>-><span style='color:#010001'>GetOutput</span>());<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>vtkSmartPointer</span><<span style='color:#010001'>vtkFixedPointVolumeRayCastMapper</span>>
<span style='color:#010001'>pGPUMapper</span> = <span style='color:#010001'>vtkSmartPointer</span><<span
style='color:#010001'>vtkFixedPointVolumeRayCastMapper</span>>::<span
style='color:#010001'>New</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pGPUMapper</span>-><span style='color:#010001'>SetBlendModeToMaximumIntensity</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pGPUMapper</span>-><span style='color:#010001'>SetAutoAdjustSampleDistances</span>(<span
style='color:blue'>true</span>);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pGPUMapper</span>-><span style='color:#010001'>SetInput</span>(<span
style='color:#010001'>pAppendComponent</span>-><span style='color:#010001'>GetOutput</span>());<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>vtkSmartPointer</span><<span style='color:#010001'>vtkColorTransferFunction</span>>
<span style='color:#010001'>pColorFunction</span> = <span style='color:#010001'>vtkSmartPointer</span><<span
style='color:#010001'>vtkColorTransferFunction</span>>::<span
style='color:#010001'>New</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pColorFunction</span>-><span style='color:#010001'>AddRGBPoint</span>(0.0,
0.0, 0.0, 0.0);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pColorFunction</span>-><span style='color:#010001'>AddRGBPoint</span>(255.0,
1.0, 1.0, 1.0);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:green'>// create transfer mapping scalar value to opacity<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>vtkSmartPointer</span><<span style='color:#010001'>vtkPiecewiseFunction</span>>
<span style='color:#010001'>pScalarToOpacityMapping</span> = <span
style='color:#010001'>vtkSmartPointer</span><<span style='color:#010001'>vtkPiecewiseFunction</span>>::<span
style='color:#010001'>New</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pScalarToOpacityMapping</span>-><span
style='color:#010001'>AddPoint</span>(0, 0.0);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pScalarToOpacityMapping</span>-><span
style='color:#010001'>AddPoint</span>(255, 2.0);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>vtkSmartPointer</span><<span style='color:#010001'>vtkVolumeProperty</span>>
<span style='color:#010001'>pVolumeProperty</span> = <span style='color:#010001'>vtkSmartPointer</span><<span
style='color:#010001'>vtkVolumeProperty</span>>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pVolumeProperty</span>-><span style='color:#010001'>SetColor</span>(<span
style='color:#010001'>pColorFunction</span>);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pVolumeProperty</span>-><span style='color:#010001'>SetInterpolationTypeToLinear</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pVolumeProperty</span>-><span style='color:#010001'>SetScalarOpacity</span>(<span
style='color:#010001'>pScalarToOpacityMapping</span>);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pVolumeProperty</span>-><span style='color:#010001'>IndependentComponentsOff</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>vtkSmartPointer</span><<span style='color:#010001'>vtkVolume</span>>
<span style='color:#010001'>pVolumeActor</span> = <span style='color:#010001'>vtkSmartPointer</span><<span
style='color:#010001'>vtkVolume</span>>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pVolumeActor</span>-><span style='color:#010001'>SetMapper</span>(<span
style='color:#010001'>pGPUMapper</span>);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>pVolumeActor</span>-><span style='color:#010001'>SetProperty</span>(<span
style='color:#010001'>pVolumeProperty</span>);<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:green'>// Add Actor to renderer<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <span
style='color:#010001'>m_pRenderer</span>-><span style='color:#010001'>AddViewProp</span>(<span
style='color:#010001'>pVolumeActor</span>);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>}<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>___________________<o:p></o:p></span></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Any help is greatly appreciated!<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Thanks.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Doug<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>