Я пытаюсь скопировать класс vtkImageData * в структуру cv :: Mat [моя цель - прочитать MHD-файл в OpenCV] .. Файл по существу является 3D-матрицей, поэтому я хочу чтобы получить вектор, содержащий все кусочки объема. До сих пор, я пришел с этим кодом,Скопировать vtkImageData в cv :: Mat
reader->SetFileName(INPUT_DATA_1.c_str());
reader->Update();
imageData_1 = reader->GetOutput();
extractVOI->SetInput(imageData_1);
int dims[3];
imageData_1->GetDimensions(dims);
extractVOI->SetVOI(0, dims[0], 0, dims[1], 75, 75); // Set it to z=75
extractVOI->GetOutput()->SetScalarTypeToSignedChar();
imageExport->SetInputConnection(extractVOI->GetOutputPort());
imageExport->Update();
cv::Mat cvMat_test(dims[0], dims[1], CV_8UC1, imageExport->GetPointerToData());
Хотя это работает, это не дает мне ожидаемый результат (которые приводятся ниже) .. Любая помощь по этому вопросу было бы очень полезно ..
Спасибо заранее, Sarthak
Ожидаемые результаты,
Выход я получаю сейчас,
EDIT: Я понимаю, что изображения не совпадает с размером. Это связано с тем, что я только что опубликовал моментальный снимок данных из программы просмотра, которую я использую. В приведенном ниже примере есть ссылка HERE. Надеюсь, что это проясняет вещи немного больше ..
TAGS: ВТК OpenCV мост, vtkopencv, ВТК OpenCV интегрировать
Привет, спасибо, что ответили. Изображение сверху - это снимок от используемого мной зрителя (это не фактический размер). Я обновил свой вопрос на примере данных, которые я использую. Я уверен, что образ * unsigned char * (это стандарт в машине для сбора данных). Я не уверен, является ли изображение непрерывным или нет; но я читаю все это в своей программе. – scap3y