[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