00001 //-------------------------------------------------- 00011 //--------------------------------------------------- 00012 00013 #ifndef IMEDGINE_TWO_BYTE_PIXEL_IMAGE_DATASET_H 00014 #define IMEDGINE_TWO_BYTE_PIXEL_IMAGE_DATASET_H 00015 00016 #include "image_pixel_dataset.h" 00017 #include "../global/global_definitions.h" 00018 #include "dataset_definitions.h" 00019 00020 #include <itkImage.h> 00021 00022 namespace imedgine 00023 { 00024 00025 //-------------------------------------------------- 00040 //-------------------------------------------------- 00041 00042 class TwoByteImagePixelDataset : public ImagePixelDataset 00043 { 00044 protected: 00045 00046 //-------------------------------------------------- 00049 typedef two_byte_image_type image_type; 00050 00051 //-------------------------------------------------- 00054 typedef two_byte_image_pointer_type image_pointer_type; 00055 00056 //-------------------------------------------------- 00059 typedef const_two_byte_image_pointer_type const_image_pointer_type; 00060 00061 //-------------------------------------------------- 00064 typedef const_two_byte_image_iterator_type const_image_iterator_type; 00065 00066 //-------------------------------------------------- 00069 typedef two_byte_pixel_type pixel_type; 00070 00071 public: 00072 00073 //-------------------------------------------------- 00076 typedef image_type type; 00077 00078 //-------------------------------------------------- 00083 00084 TwoByteImagePixelDataset(dataset_key_type dataset_key, image_pointer_type image = 0); 00085 00086 //-------------------------------------------------- 00089 00090 virtual ~TwoByteImagePixelDataset(); 00091 00092 //-------------------------------------------------- 00096 00097 virtual external_data_pointer_type getData() const 00098 throw(NullPointerException); 00099 00100 //-------------------------------------------------- 00104 00105 void setDataset(image_pointer_type dataset); 00106 00107 //-------------------------------------------------- 00112 00113 image_pointer_type getDataset(); 00114 00115 //-------------------------------------------------- 00120 00121 const_image_pointer_type getDataset() const; 00122 00123 //---------------------------------------------------- 00128 00129 virtual void setIntensity(double window, double level); 00130 00131 //---------------------------------------------------- 00135 00136 virtual double getIntensityWindow() const 00137 throw(NullPointerException); 00138 00139 //---------------------------------------------------- 00143 00144 virtual double getIntensityLevel() const 00145 throw(NullPointerException); 00146 00147 00148 protected: 00149 00150 //-------------------------------------------------- 00153 typedef image_type::RegionType region_type; 00154 00155 //-------------------------------------------------- 00158 typedef image_type::SizeType region_size_type; 00159 00160 //-------------------------------------------------- 00163 typedef image_type::IndexType region_index_type; 00164 00165 //-------------------------------------------------- 00168 typedef itk::IntensityWindowingImageFilter<image_type, external_image_type> 00169 image_intensity_filter_type; 00170 00171 //-------------------------------------------------- 00174 00175 TwoByteImagePixelDataset(TwoByteImagePixelDataset const& src); 00176 00177 //-------------------------------------------------- 00181 00182 void setDatasetInternal(image_pointer_type dataset); 00183 00184 //-------------------------------------------------- 00187 image_pointer_type dataset_; 00188 00189 //-------------------------------------------------- 00192 image_intensity_filter_type::Pointer image_intensity_filter_; 00193 00194 private: 00195 00196 //-------------------------------------------------- 00199 00200 TwoByteImagePixelDataset& operator = (TwoByteImagePixelDataset const&) { return(*this); } 00201 }; 00202 00203 } 00204 00205 #endif // IMEDGINEPIXELIMAGE_DATASET_H