Я пытаюсь работать с фильтрами «unsharp-mask» для файлов DICOM и / или .mhd (цель).
В C ++ рекомендуется использовать ITK, в нем есть класс UnsharpMaskLevelSetImageFilter, он делает именно то, что я хочу, для 2D-изображений.
Когда я использую том imageType для файлов .dcm или .mhd, фильтр не работает. Кто-нибудь может подсказать, совместимо ли это с громкостью? Или есть ли способ создать unsharp-mask в C ++?
это мой код:
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();
Задача ещё не решена.
Других решений пока нет …