7 #ifndef Tomato_itkOxTestImage_HXX 8 #define Tomato_itkOxTestImage_HXX 10 #include "CmakeConfigForTomato.h" 16 template<
typename MeasureType >
17 TestItkImagesFactory< MeasureType >
18 ::TestItkImagesFactory(
int nRows,
int nCols, std::vector <std::string> filesPaths, std::vector<int> invTimesOrder){
19 _testImage =
new TestImage< MeasureType >(nRows, nCols, filesPaths, invTimesOrder);
22 template<
typename MeasureType >
23 TestItkImagesFactory< MeasureType >
24 ::TestItkImagesFactory(
int nRows,
int nCols, std::vector <std::string> filesPaths){
25 _testImage =
new TestImage< MeasureType >(nRows, nCols, filesPaths);
28 template<
typename MeasureType >
29 TestItkImagesFactory< MeasureType >
30 ::~TestItkImagesFactory(){
34 template<
typename MeasureType >
36 TestItkImagesFactory< MeasureType >
37 ::getNSamples()
const {
38 return _testImage->getNSamples();
41 template<
typename MeasureType >
43 TestItkImagesFactory< MeasureType >
45 return _testImage->getInvTimesPtr();
48 template<
typename MeasureType >
49 std::vector<MeasureType>
50 TestItkImagesFactory< MeasureType >
51 ::getInvTimes()
const{
52 return _testImage->getInvTimes();
55 template<
typename MeasureType >
56 vnl_vector<MeasureType>
57 TestItkImagesFactory< MeasureType >
58 :: getInvTimesVnl()
const{
59 return vnl_vector<MeasureType>(_testImage->getInvTimesPtr(), _testImage->getNSamples());
63 template<
typename MeasureType >
64 typename itk::Image< MeasureType, 3 >::Pointer
65 TestItkImagesFactory< MeasureType >
67 typename itk::Image< MeasureType, 3 >::Pointer image = generateImage3d();
68 itk::ImageRegionIteratorWithIndex<itk::Image< MeasureType, 3 > > imageIterator(image, image->GetLargestPossibleRegion());
69 copyBufferToImage3d(image, _testImage->getImageMagPtr());
73 template<
typename MeasureType >
74 typename itk::Image< MeasureType, 3 >::Pointer
75 TestItkImagesFactory< MeasureType >
77 typename itk::Image< MeasureType, 3 >::Pointer image = generateImage3d();
78 itk::ImageRegionIteratorWithIndex<itk::Image< MeasureType, 3 > > imageIterator(image, image->GetLargestPossibleRegion());
79 copyBufferToImage3d(image, _testImage->getImagePhaPtr());
83 template<
typename MeasureType >
84 typename itk::Image< MeasureType, 2 >::Pointer
85 TestItkImagesFactory< MeasureType >
86 ::generateImageResultsMolliA(){
87 typename itk::Image< MeasureType, 2 >::Pointer image = generateImage2d();
88 itk::ImageRegionIteratorWithIndex<itk::Image< MeasureType, 2 > > imageIterator(image, image->GetLargestPossibleRegion());
89 copyBufferToImage2d(image, _testImage->getImageResultsMolliPtr());
93 template<
typename MeasureType >
94 typename itk::Image< MeasureType, 2 >::Pointer
95 TestItkImagesFactory< MeasureType >
96 ::generateImageResultsMolliB(){
97 typename itk::Image< MeasureType, 2 >::Pointer image = generateImage2d();
98 itk::ImageRegionIteratorWithIndex<itk::Image< MeasureType, 2 > > imageIterator(image, image->GetLargestPossibleRegion());
99 int nRows = _testImage->getNRows();
100 int nCols = _testImage->getNCols();
102 MeasureType *pointer = _testImage->getImageResultsMolliPtr() + nRows*nCols;
103 copyBufferToImage2d(image, pointer);
107 template<
typename MeasureType >
108 typename itk::Image< MeasureType, 2 >::Pointer
109 TestItkImagesFactory< MeasureType >
110 ::generateImageResultsMolliT1star(){
111 typename itk::Image< MeasureType, 2 >::Pointer image = generateImage2d();
112 itk::ImageRegionIteratorWithIndex<itk::Image< MeasureType, 2 > > imageIterator(image, image->GetLargestPossibleRegion());
113 int nRows = _testImage->getNRows();
114 int nCols = _testImage->getNCols();
116 MeasureType *pointer = _testImage->getImageResultsMolliPtr() + 2*nRows*nCols;
117 copyBufferToImage2d(image, pointer);
121 template<
typename MeasureType >
122 typename itk::Image< MeasureType, 2 >::Pointer
123 TestItkImagesFactory< MeasureType >
124 ::generateImageResultsShmolliA(){
125 typename itk::Image< MeasureType, 2 >::Pointer image = generateImage2d();
126 itk::ImageRegionIteratorWithIndex<itk::Image< MeasureType, 2 > > imageIterator(image, image->GetLargestPossibleRegion());
127 copyBufferToImage2d(image, _testImage->getImageResultsShmolliPtr());
131 template<
typename MeasureType >
132 typename itk::Image< MeasureType, 2 >::Pointer
133 TestItkImagesFactory< MeasureType >
134 ::generateImageResultsShmolliB(){
135 typename itk::Image< MeasureType, 2 >::Pointer image = generateImage2d();
136 itk::ImageRegionIteratorWithIndex<itk::Image< MeasureType, 2 > > imageIterator(image, image->GetLargestPossibleRegion());
137 int nRows = _testImage->getNRows();
138 int nCols = _testImage->getNCols();
140 MeasureType *pointer = _testImage->getImageResultsShmolliPtr() + nRows*nCols;
141 copyBufferToImage2d(image, pointer);
145 template<
typename MeasureType >
146 typename itk::Image< MeasureType, 2 >::Pointer
147 TestItkImagesFactory< MeasureType >
148 ::generateImageResultsShmolliT1star(){
149 typename itk::Image< MeasureType, 2 >::Pointer image = generateImage2d();
150 itk::ImageRegionIteratorWithIndex<itk::Image< MeasureType, 2 > > imageIterator(image, image->GetLargestPossibleRegion());
151 int nRows = _testImage->getNRows();
152 int nCols = _testImage->getNCols();
154 MeasureType *pointer = _testImage->getImageResultsShmolliPtr() + 2*nRows*nCols;
155 copyBufferToImage2d(image, pointer);
159 template<
typename MeasureType >
160 typename itk::Image< MeasureType, 2 >::Pointer
161 TestItkImagesFactory< MeasureType >
164 typename itk::Image< MeasureType, 2 >::RegionType region;
165 typename itk::Image< MeasureType, 2 >::IndexType start;
169 typename itk::Image< MeasureType, 2 >::SizeType size;
170 size[0] = _testImage->getNCols();
171 size[1] = _testImage->getNRows();
173 region.SetSize(size);
174 region.SetIndex(start);
176 typename itk::Image< MeasureType, 2 >::Pointer image = itk::Image< MeasureType, 2 >::New();
177 image->SetRegions(region);
179 image->FillBuffer(0);
184 template<
typename MeasureType >
185 typename itk::Image< MeasureType, 3 >::Pointer
186 TestItkImagesFactory< MeasureType >
189 typename itk::Image< MeasureType, 3 >::RegionType region;
190 typename itk::Image< MeasureType, 3 >::IndexType start;
195 typename itk::Image< MeasureType, 3 >::SizeType size;
196 size[0] = _testImage->getNCols();
197 size[1] = _testImage->getNRows();
198 size[2] = _testImage->getNSamples();
200 region.SetSize(size);
201 region.SetIndex(start);
203 typename itk::Image< MeasureType, 3 >::Pointer image = itk::Image< MeasureType, 3 >::New();
204 image->SetRegions(region);
206 image->FillBuffer(0);
211 template<
typename MeasureType >
213 TestItkImagesFactory< MeasureType >
214 ::copyBufferToImage2d(
typename itk::Image< MeasureType, 2 >::Pointer image, MeasureType* buffer) {
215 itk::ImageRegionIteratorWithIndex<itk::Image< MeasureType, 2 > > imageIterator(image, image->GetLargestPossibleRegion());
217 int nRows = _testImage->getNRows();
218 int nCols = _testImage->getNCols();
219 while(!imageIterator.IsAtEnd())
221 int iCol = imageIterator.GetIndex()[0];
222 int iRow = imageIterator.GetIndex()[1];
224 imageIterator.Set(buffer[iRow * nCols + iCol]);
229 template<
typename MeasureType >
231 TestItkImagesFactory< MeasureType >
232 ::copyBufferToImage3d(
typename itk::Image< MeasureType, 3 >::Pointer image, MeasureType* buffer) {
233 itk::ImageRegionIteratorWithIndex<itk::Image< MeasureType, 3 > > imageIterator(image, image->GetLargestPossibleRegion());
235 int nRows = _testImage->getNRows();
236 int nCols = _testImage->getNCols();
237 while(!imageIterator.IsAtEnd())
239 int iCol = imageIterator.GetIndex()[0];
240 int iRow = imageIterator.GetIndex()[1];
241 int iSample = imageIterator.GetIndex()[2];
243 imageIterator.Set(buffer[iSample * nRows * nCols+ iRow * nCols + iCol]);
252 #endif //Tomato_itkOxTestImage_HXX Definition: OxCalculator.h:19