Static Public Member Functions | |
static void | Test (mitk::CompressedImageContainer *container, mitk::Image *image, unsigned int &numberFailed) |
Definition at line 24 of file mitkCompressedImageContainerTest.cpp.
static void mitkCompressedImageContainerTestClass::Test | ( | mitk::CompressedImageContainer * | container, |
mitk::Image * | image, | ||
unsigned int & | numberFailed | ||
) | [inline, static] |
Definition at line 28 of file mitkCompressedImageContainerTest.cpp.
References mitk::PixelType::GetBitsPerComponent(), mitk::PixelType::GetBpe(), mitk::Image::GetDimension(), mitk::CompressedImageContainer::GetImage(), mitk::PixelType::GetNumberOfComponents(), mitk::Image::GetPixelType(), mitk::PixelType::GetTypeId(), mitk::Image::GetVolumeData(), and mitk::CompressedImageContainer::SetImage().
Referenced by mitkCompressedImageContainerTest().
{ container->SetImage( image ); // compress mitk::Image::Pointer uncompressedImage = container->GetImage(); // uncompress // check dimensions if (image->GetDimension() != uncompressedImage->GetDimension()) { ++numberFailed; std::cerr << " (EE) Number of image dimensions wrong after uncompression (was: " << image->GetDimension() << ", now: " << uncompressedImage->GetDimension() << ")" << std::endl; } for (unsigned int dim = 0; dim < image->GetDimension(); ++dim) { if (image->GetDimension(dim) != uncompressedImage->GetDimension(dim)) { ++numberFailed; std::cerr << " (EE) Image dimension " << dim << " differs after uncompression (was: " << image->GetDimension(dim) << ", now: " << uncompressedImage->GetDimension(dim) << ")" << std::endl; } } // check pixel type if (image->GetPixelType() != uncompressedImage->GetPixelType()) { ++numberFailed; std::cerr << " (EE) Pixel type wrong after uncompression:" << std::endl; mitk::PixelType m_PixelType = image->GetPixelType(); std::cout << "Original pixel type:" << std::endl; std::cout << " PixelType: " << m_PixelType.GetTypeId()->name() << std::endl; std::cout << " BitsPerElement: " << m_PixelType.GetBpe() << std::endl; std::cout << " NumberOfComponents: " << m_PixelType.GetNumberOfComponents() << std::endl; std::cout << " BitsPerComponent: " << m_PixelType.GetBitsPerComponent() << std::endl; m_PixelType = uncompressedImage->GetPixelType(); std::cout << "Uncompressed pixel type:" << std::endl; std::cout << " PixelType: " << m_PixelType.GetTypeId()->name() << std::endl; std::cout << " BitsPerElement: " << m_PixelType.GetBpe() << std::endl; std::cout << " NumberOfComponents: " << m_PixelType.GetNumberOfComponents() << std::endl; std::cout << " BitsPerComponent: " << m_PixelType.GetBitsPerComponent() << std::endl; } // check data mitk::PixelType m_PixelType = image->GetPixelType(); unsigned long oneTimeStepSizeInBytes = m_PixelType.GetBpe() >> 3; // bits per element divided by 8 for (unsigned int dim = 0; dim < image->GetDimension(); ++dim) { if (dim < 3) { oneTimeStepSizeInBytes *= image->GetDimension(dim); } } unsigned int numberOfTimeSteps(1); if (image->GetDimension() > 3) { numberOfTimeSteps = image->GetDimension(3); } for (unsigned int timeStep = 0; timeStep < numberOfTimeSteps; ++timeStep) { unsigned char* originalData( static_cast<unsigned char*>(image->GetVolumeData(timeStep)->GetData()) ); unsigned char* uncompressedData( static_cast<unsigned char*>(uncompressedImage->GetVolumeData(timeStep)->GetData()) ); unsigned long difference(0); for (unsigned long byte = 0; byte < oneTimeStepSizeInBytes; ++byte) { if ( originalData[byte] != uncompressedData[byte] ) { ++difference; } } if ( difference > 0 ) { ++numberFailed; std::cerr << " (EE) Pixel data in timestep " << timeStep << " not identical after uncompression. " << difference << " pixels different." << std::endl; break; // break "for timeStep" } } }