我正在尝试为 DICOM 文件和或.mhd(目标)使用过滤器“unsharp-mask”。在 C++ 中推荐使用 ITK,其中有 UnsharpMaskLevelSetImageFilter 类,它完全符合我的要求,适用于 2D 图像。当我对 .dcm 文件或 .mhd 使用 imageType 卷时,过滤器不起作用。谁能告诉我它是否与音量兼容?或者是否有任何方法可以在 C++ 中创建 unsharp-mask?
这是我的代码:
itk::GDCMImageIOFactory::RegisterOneFactory();
itk::MetaImageIOFactory::RegisterOneFactory();
typedef float InputPixelType;
const int ImageDimension = 3;
typedef itk::Image< InputPixelType, ImageDimension > InputImageType;
typedef itk::ImageFileReader< InputImageType > ReaderType;
typedef itk::UnsharpMaskLevelSetImageFilter <InputImageType, InputImageType> FilterType;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName("D:\\31panoramica.mhd");
FilterType::Pointer filter = FilterType::New();
FilterWatcher watcher(filter);
filter->SetNumberOfThreads(100);
filter->SetMaxFilterIteration(10);
filter->SetNormalProcessUnsharpWeight(0.2);
filter->SetInput(reader->GetOutput());
filter->Update();
typedef itk::ImageFileWriter< InputImageType > WriterType;
WriterType::Pointer writer = WriterType::New();
writer->SetFileName("D:\\31panoramica22.mhd");
writer->SetInput(filter->GetOutput());
writer->Update();