DICOM ファイルおよびまたは .mhd (目標) のフィルター「unsharp-mask」を使用しようとしています。C ++ では ITK の使用が推奨され、その中に UnsharpMaskLevelSetImageFilter クラスがあり、2D 画像に対してまさに私が望むことを行います。imageType ボリュームを .dcm ファイルまたは .mhd に使用すると、フィルターが機能しません。ボリュームと互換性があるかどうか誰か教えてもらえますか? または、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();