我正在尝试将 vtkImageData* 类复制到 cv::Mat 结构 [我的目标是将 MHD 文件读入 OpenCV].. 该文件本质上是一个 3D 矩阵,所以我想获得一个包含所有切片的向量体积。到目前为止,我已经想出了这段代码,
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());
虽然这是可行的,但它并没有给我预期的输出(下面突出显示)..关于这个问题的任何帮助都会非常有帮助..
提前致谢, 萨塔克
预期输出,
我现在得到的输出,
编辑:我意识到图像的大小不同。这是因为我刚刚发布了我正在使用的查看器的数据快照。在此处给出的保管箱链接中有一个示例给出的保管箱链接中有一个示例。希望这可以进一步澄清一些事情..
标签:vtk opencv 桥,vtkopencv,vtk opencv 集成