[IGSTK-Developers] igstkImageReader & ImageSpatialObject

Patrick Cheng cheng at isis.georgetown.edu
Thu Sep 8 12:41:57 EDT 2005


Hi Andinet,

Thank you for your reply.

For Q2 I mean: The code in the igstkImageReader class, is actually 
connecting the itkExporter and vtkImporter. like the 
itkImageToVTKImageFilter does. Which I think it's confusing

Patrick

Andinet Enquobahrie wrote:
> Hello Patrick,
> 
> You have brought up important points.  Before I comment on  each  item, 
> I want to mention as a general remark that some of these 
> inconsistencies/confusions are partly due to the new image reader 
> classes design. As we go further along the development, these flaws will 
> be flushed out.
> 
> For example, in the ImageSpatialObject classs, igstkImageReader should 
> be used instead of igstkCTImageReader class.
> 
>> I have some question about the design of these two classes.
>> It seems that the igstkImageReader is essentially a 
>> itkImageToVTKFilter, and the inheritance relation is:
>> igstkImageReader <-- igstkDICOMImageReader <-- igstkCTImageReader
>> and in the igstkImageSpatialObject it uses the CTImageReader and the 
>> GetVTKImage() method to pass the data to 
>> ImageSpatialObjectRepresentation. the internal itkImageSpatialObject 
>> actually is not used at all.
>> Here is my question:
>> 1. If we encapsulate the Reader Class into the ImageSpatialObject, it 
>> will be very hard to extend. (if people wants to read in other kind of 
>> data). So I think we should separate them and use the 
>> internalitkImageSpatialObject->SetImage() method to pass the image 
>> data from reader to igstkImageSpatialObject
> 
> 
> I don't think this would be a problem once we replace the CTImageReader 
> with ImageReader class. The new ImageReader class is templated over 
> input image data type. It was designed this way so that we can handle 
> different types of data.
> 
>>
>> 2. itkImageToVTKFilter is actually a filter, need input image, it 
>> behaves differently from ImageReader. I think we should not make this 
>> class to be the base class of igstkImageReader. instead, put it into 
>> the igstkImageSpatialObjectRepresentation. then we can use this filter 
>> and the igstkImageSpatialObject->GetImage() method to filter the data 
>> to VTKImageData and create actor for it.
>>
> I am not sure if I understood this question. igstk::ImageReader is 
> derived from itk:Object. itkImageToVTKfilter is not the base class of 
> ImageReader...
> 
>> 3. Also the igstkImageSpatialObjectRepresentation class may be need to 
>> branch into two class: igstkImageSpatialObject2DRepresentation and 
>> igstkImageSpatialObject3DRepresentation. b/z we need implement 
>> different rendering method for 2D (slice) and for 3D (volume or surface).
> 
> 
> Good point....
> 
>> 4. Also some small requirements: logger need to be added to 
>> igstkImageSpatialObject; testing program need to be added for 
>> igstkImageSpatialObjectRepresentation
> 
> 
> These are missing  components...especially test programs are critical. 
> We shouldn't add new classes/filters without an accompanying test 
> program....
> 
> cheers,
> -Andinet
> 
> 
> 

-- 
Peng (Patrick) Cheng
Research Engineer
cheng at isis.georgetown.edu

Imaging Science and Information Systems (ISIS) Center
Department of Radiology, Georgetown University Medical Center
2115 Wisconsin Avenue, Suite 603
Washington, DC, 20007

Work phone: 202-687-2902
Work fax:   202-784-3479
Cell phone: 202-674-5626



More information about the IGSTK-Developers mailing list