<div dir="ltr">hi david,<div>     I use vtkGDCMImageReader(gdcm2.8.5) to read dicom serires image, and SetFileLowerLeftOn() called too. after success reading, the process image codes as following:</div><div>_____________________________________________________________________________</div><div>       Point3 data_origin = imgdata->GetOrigin();</div><div>    Point3 dataorigin = info->origin;</div><div>    Point3 patient_position = info->patient_position;</div><div><br></div><div>    //here: i am sure:data_origin is equal with both dataorigin and patient_position</div><div><br></div><div>    Vec3 row_orient = info->patient_row_orientation;</div><div>    Vec3 col_orient = info->patient_col_orientation;</div><div>    Vec3 slice_orient = info->patient_orientation;</div><div><br></div><div>    vtkMatrix4x4* matrix = vtkMatrix4x4::New();</div><div>    matrix->Identity();</div><div>    matrix->SetElement(0, 0, row_orient[0]);</div><div>    matrix->SetElement(0, 1, row_orient[1]);</div><div>    matrix->SetElement(0, 2, row_orient[2]);</div><div>    matrix->SetElement(1, 0, col_orient[0]);</div><div>    matrix->SetElement(1, 1, col_orient[1]);</div><div>    matrix->SetElement(1, 2, col_orient[2]);</div><div>    matrix->SetElement(2, 0, slice_orient[0]);</div><div>    matrix->SetElement(2, 1, slice_orient[1]);</div><div>    matrix->SetElement(2, 2, slice_orient[2]);</div><div><br></div><div>    vtkMatrix4x4* inverse_matrix = vtkMatrix4x4::New();</div><div>    matrix->Invert(matrix, inverse_matrix);</div><div>    double new_origin[4] = {0.0};</div><div>    new_origin[3] = 1.0;</div><div>    inverse_matrix->MultiplyPoint(data_origin, new_origin);</div><div>    inverse_matrix->Delete();</div><div><br></div><div>    vtkImageChangeInformation* imgchangeinfo = vtkImageChangeInformation::New();</div><div>    imgchangeinfo->SetOutputOrigin(new_origin[0], new_origin[1], new_origin[2]);</div><div>    imgchangeinfo->SetInputData(imgdata);</div><div>    imgchangeinfo->Update();</div><div>    imgdata->DeepCopy(reslice->GetOutput());</div><div>    imgchangeinfo->Delete();</div><div><br></div><div>    vtkTransformFilter* transform_filter = vtkTransformFilter::New();</div><div>    vtkTransform* patient_transform = vtkTransform::New();</div><div>    patient_transform->SetMatrix(matrix);</div><div>    transform_filter->SetTransform(patient_transform);</div><div>    transform_filter->SetInputData(imgdata);</div><div>    transform_filter->Update();</div><div>    imgdata->DeepCopy(transform_filter->GetOutputDataObject(0));</div><div>    transform_filter->Delete();</div><div>    patient_transform->Delete();</div><div>    matrix->Delete();</div><div><br></div><div>__________________________________________________________________________</div><div><br></div><div>    it works ok in some dicom series image, but not working for some series image especially single dcm file with multi-frame.</div><div><br></div><div>    what's wrong in my code? please help me ! thanks a lot!</div><div><br></div><div><br></div><div><br></div></div>