00001 //-------------------------------------------------- 00011 //--------------------------------------------------- 00012 00013 #ifndef IMEDGINE_ONE_BYTE_PIXEL_IMAGE_DATASET_H 00014 #define IMEDGINE_ONE_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 //-------------------------------------------------- 00041 //-------------------------------------------------- 00042 00043 class OneByteImagePixelDataset : public ImagePixelDataset 00044 { 00045 protected: 00046 00047 //-------------------------------------------------- 00050 typedef one_byte_image_type image_type; 00051 00052 //-------------------------------------------------- 00055 typedef one_byte_image_pointer_type image_pointer_type; 00056 00057 //-------------------------------------------------- 00060 typedef const_one_byte_image_pointer_type const_image_pointer_type; 00061 00062 //-------------------------------------------------- 00065 typedef const_one_byte_image_iterator_type const_image_iterator_type; 00066 00067 //-------------------------------------------------- 00070 typedef one_byte_pixel_type pixel_type; 00071 00072 public: 00073 00074 //-------------------------------------------------- 00077 typedef image_type type; 00078 00079 //-------------------------------------------------- 00084 00085 OneByteImagePixelDataset(dataset_key_type dataset_key, image_pointer_type image = 0); 00086 00087 //-------------------------------------------------- 00090 00091 virtual ~OneByteImagePixelDataset(); 00092 00093 //-------------------------------------------------- 00097 00098 virtual external_data_pointer_type getData() const 00099 throw(NullPointerException); 00100 00101 //-------------------------------------------------- 00105 00106 void setDataset(image_pointer_type dataset); 00107 00108 //-------------------------------------------------- 00113 00114 image_pointer_type getDataset(); 00115 00116 //-------------------------------------------------- 00121 00122 const_image_pointer_type getDataset() const; 00123 00124 //---------------------------------------------------- 00129 00130 virtual void setIntensity(double window, double level); 00131 00132 //---------------------------------------------------- 00136 00137 virtual double getIntensityWindow() const 00138 throw(NullPointerException); 00139 00140 //---------------------------------------------------- 00144 00145 virtual double getIntensityLevel() const 00146 throw(NullPointerException); 00147 00148 00149 protected: 00150 00151 //-------------------------------------------------- 00154 typedef image_type::RegionType region_type; 00155 00156 //-------------------------------------------------- 00159 typedef image_type::SizeType region_size_type; 00160 00161 //-------------------------------------------------- 00164 typedef image_type::IndexType region_index_type; 00165 00166 //-------------------------------------------------- 00169 typedef itk::IntensityWindowingImageFilter<image_type, external_image_type> 00170 image_intensity_filter_type; 00171 00172 //-------------------------------------------------- 00175 00176 OneByteImagePixelDataset(OneByteImagePixelDataset const& src); 00177 00178 //-------------------------------------------------- 00182 00183 void setDatasetInternal(image_pointer_type dataset); 00184 00185 //-------------------------------------------------- 00188 image_pointer_type dataset_; 00189 00190 //-------------------------------------------------- 00193 image_intensity_filter_type::Pointer image_intensity_filter_; 00194 00195 00196 private: 00197 00198 //-------------------------------------------------- 00201 00202 OneByteImagePixelDataset& operator = (OneByteImagePixelDataset const&) { return(*this); } 00203 00204 }; 00205 00206 } 00207 00208 #endif // IMEDGINEPIXELIMAGE_DATASET_H