vtkImageDataPtr Image::getGrayScaleVtkImageData() { if (mBaseGrayScaleImageData) { return mBaseGrayScaleImageData; } mBaseGrayScaleImageData = convertImageDataToGrayScale(this->getBaseVtkImageData()); return mBaseGrayScaleImageData; }
/**Convert input to grayscale, and return a COPY of that volume ( in order to break the pipeline for memory purposes) * ALSO: remove data in image outside extent - required by reconstruction. * Convert to 8 bit as current US reconstruction algorithms only handles 8 bit */ vtkImageDataPtr USFrameData::to8bitGrayscaleAndEffectuateCropping(vtkImageDataPtr input) const { vtkImageDataPtr grayScaleData; if (input->GetNumberOfScalarComponents() == 1) // already gray { // crop (slow) grayScaleData = input; // outData->Crop(); } else { // convert and crop as side effect (optimization) grayScaleData = convertImageDataToGrayScale(input); } vtkImageDataPtr outData = this->convertTo8bit(grayScaleData); vtkImageDataPtr copy = vtkImageDataPtr::New(); copy->DeepCopy(outData); return copy; }