Передача данных из ВТК в SimpleITK и обратно - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть приложение VC ++, которое использует vtkDICOMReader для загрузки данных CT и рендеринга тома.

После рендеринга тома II импортировал данные из VTK в SimpleITK . Вот код:

////  **importing data from VTK to SimpleITK**  ///////////////////////////////////
int* nDim =  **m_pDICOMReader** ->GetOutput()->GetDimensions();
TRACE(">>>>%d|%d|%d\n", nDim[0], nDim[1], nDim[2]); //  **result: >>>>512|512|102**
uint8_t* in = new uint8_t[nDim[0] * nDim[1] * nDim[2]];
double* dSpacing =  **m_pDICOMReader** ->GetOutput()->GetSpacing();
std::vector<double> spacing;
spacing.push_back(dSpacing[0]);
spacing.push_back(dSpacing[1]);
spacing.push_back(dSpacing[2]);
importer.SetSpacing(spacing);
double* dOrigin =  **m_pDICOMReader** ->GetOutput()->GetOrigin();
std::vector<double> origin;
origin.push_back(dOrigin[0]);
origin.push_back(dOrigin[1]);
origin.push_back(dOrigin[2]);
importer.SetOrigin(origin);
std::vector<unsigned int> size;
size.push_back((unsigned int)nDim[0]);
size.push_back((unsigned int)nDim[1]);
size.push_back((unsigned int)nDim[2]);
importer.SetSize(size);
importer.SetBufferAsUInt8(in);
sitk::Image  **img**  = importer.Execute();
///////////////////////////////////////////////////////////////////////////

после этого импорта я сохранил изображение на жестком диске:

sitk::Image img = importer.Execute();
img = sitk::GrayscaleErode(img, 10);
sitk::WriteImage(img, _T("D:\\Tempx\\TestSimpleITK.png"));

Простое черное изображение ... Мне кажется, я чего-то здесь не понял ... что я могу точно знать, если перевод из VTK в SimpleITK работает правильно?

...