MantisBT - ITK | |||||
| View Issue Details | |||||
| ID | Project | Category | View Status | Date Submitted | Last Update |
| 0007027 | ITK | public | 2008-05-15 08:44 | 2009-09-19 09:48 | |
| Reporter | Mathieu Malaterre | ||||
| Assigned To | Mathieu Malaterre | ||||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | OS | OS Version | |||
| Product Version | |||||
| Target Version | Fixed in Version | ITK-3-16 | |||
| Resolution Date | |||||
| Sprint | |||||
| Sprint Status | |||||
| Summary | 0007027: itkGDCMImageIO does not rescale properly when dealing with floating point images. | ||||
| Description | In the itkGDCMImageIO code the following code is incorrect for floating point source: template<class TBuffer, class TSource> void RescaleFunctionInverse(TBuffer* buffer, TSource *source, double slope, double intercept, size_t size) { size /= sizeof(TSource); if (slope != 1.0 && intercept != 0.0) { DUFF_DEVICE_8(size, *buffer++ = (TBuffer)((*source++ - intercept) / slope) ); } else if (slope == 1.0 && intercept != 0.0) { TSource sintercept = (TSource)intercept; if (sintercept == intercept) { DUFF_DEVICE_8(size, *buffer++ = (TBuffer)(*source++ - sintercept) ); } else { DUFF_DEVICE_8(size, *buffer++ = (TBuffer)(*source++ - intercept) ); } } else if (slope != 1.0 && intercept == 0.0) { DUFF_DEVICE_8(size, *buffer++ = (TBuffer)((*source++) / slope) ); } else { DUFF_DEVICE_8(size, *buffer++ = (TBuffer)(*source++) ); } } The solution is to use the well-known trick of: DUFF_DEVICE_8(size, *buffer++ = (TBuffer)((*source++ - intercept) / slope) + 0.5 ); | ||||
| Steps To Reproduce | |||||
| Additional Information | |||||
| Tags | No tags attached. | ||||
| Relationships | |||||
| Attached Files | |||||
| Issue History | |||||
| Date Modified | Username | Field | Change | ||
| 2008-05-15 08:44 | Mathieu Malaterre | New Issue | |||
| 2008-10-06 05:32 | Mathieu Malaterre | Status | new => assigned | ||
| 2008-10-06 05:32 | Mathieu Malaterre | Assigned To | => Mathieu Malaterre | ||
| 2008-11-30 08:58 | Mathieu Malaterre | Note Added: 0014234 | |||
| 2008-11-30 08:58 | Mathieu Malaterre | Note Added: 0014235 | |||
| 2008-11-30 08:58 | Mathieu Malaterre | Status | assigned => closed | ||
| 2008-11-30 08:58 | Mathieu Malaterre | Resolution | open => fixed | ||
| 2008-11-30 08:58 | Mathieu Malaterre | Fixed in Version | => ITK-3-10 | ||
| 2008-11-30 11:42 | Mathieu Malaterre | Note Added: 0014256 | |||
| 2008-11-30 11:42 | Mathieu Malaterre | Status | closed => resolved | ||
| 2008-11-30 11:42 | Mathieu Malaterre | Fixed in Version | ITK-3-10 => | ||
| 2009-09-19 09:48 | Mathieu Malaterre | Note Added: 0017636 | |||
| 2009-09-19 09:48 | Mathieu Malaterre | Status | resolved => closed | ||
| 2009-09-19 09:48 | Mathieu Malaterre | Fixed in Version | => ITK-3-16 | ||
| Notes | |||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||