Exemple #1
0
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;
}