<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div>Hi all,<br><br>I'm extracting slices from a DICOM dataset and writing on disk. The aproach are following:<br>- Load using vtkDICOMImageReader;<br>- Extract slices using vtkImageReslice.<br>- Write using vtkPNGImageWriter<br><br>-- CODE:<br> m_Reslicer->SetInput(m_ImageData);<br>
m_Reslicer->SetInterpolationModeToLinear();<br>
double minSpacing = fabs(spacing[0]);<br>
if (fabs(spacing[1]) < minSpacing)<br>
{<br>
minSpacing = fabs(spacing[1]);<br>
}<br>
if (fabs(spacing[2]) < minSpacing)<br>
{<br>
minSpacing = fabs(spacing[2]);<br>
}<br>
m_Reslicer->SetOutputSpacing(minSpacing, minSpacing, minSpacing);<br>
m_Reslicer->GetOutput()->UpdateInformation();<br>
m_Reslicer->SetOutputDimensionality(2);<br>
m_Reslicer->SetResliceAxes(m_Matrix);<br>
m_Reslicer->GetOutput()->UpdateInformation();<br>
double point[4];<br>
double temp[4];<br>
point[0] = 0.0;<br>
point[1] = 0.0;<br>
switch(m_Axy)<br>
{<br>
case VolumeRepresentation::Coronal:<br>
point[2] = m_Reslicer->GetOutput()->GetSpacing()[0] * 0.5 // what's are the factor?;<br>
break;<br>
case VolumeRepresentation::Saggital:<br>
point[2] = m_Reslicer->GetOutput()->GetSpacing()[1] * 0.5 // what's are the factor?;<br>
break;<br>
case VolumeRepresentation::Transversal:<br>
point[2] = m_Reslicer->GetOutput()->GetSpacing()[2];<br>
break;<br>
}<br>
vtkMatrix4x4 *matrix = m_Reslicer->GetResliceAxes();<br>
point[3] = 1.0;<br>
matrix->MultiplyPoint(point, temp);<br>
matrix->SetElement(0, 3, temp[0]);<br>
matrix->SetElement(1, 3, temp[1]);<br>
matrix->SetElement(2, 3, temp[2]);<br>
m_Reslicer->Update();<br>
m_Slice->DeepCopy(m_Reslicer->GetOutput());<br>
return m_Slice;<br><br><br>When I extract slices from the transversal axis, all are extracted ok, but when I extract from coronal and sagittal axis, a lot of slices are empty. After some playing, I was discovered that's my error are these lines:<br><br> point[2] = m_Reslicer->GetOutput()->GetSpacing()[];<br><br>Then I was multiplied, when extracting coronal or sagittal slices, like showed in the code.<br>Works fine! No empty slices anymore! But, the factor are fixed, and I don't know how to calculate the factor 0.5. <br>I'm completely wrong? Someone can help?<br><br>Thks in advance,<br><br>Wagner Sales<br><br><br><br> <br></div></div><br>__________________________________________________<br>Fale com seus amigos de graça com o novo Yahoo! Messenger <br>http://br.messenger.yahoo.com/ </body></html>