Building vtk 8.2 with VTKDicom in C++

I had this working before :expressionless:

I modified a version of FourPaneViewer, QtVTKRenderWindows to use David Gobbi’s VTKDicom so that it would read compressed DICOM files. I’m also using vtk version 8.2 and GDCM.

I had this working 6 months ago, but after using CMake and VS to rebuild everything on another developer’s station, I can no longer get the decompression to work. Obviously there something I don’t know about integrating the VTKDicom libs. Any ideas about what the differences are between builds?


Is this CMake issue? If so, what did I miss in CMake?

Hi Doug, for decompression vtk-dicom requires GDCM. After building GDCM, turn on the cmake USE_GDCM option for vtk-dicom and re-configure.

Note: if you mention me in a post (@dgobbi) then discourse will automatically notify me by email.

OK, thanks David. Appreciate it!

@dgobbi, after building vtk 8.2, vtkdicom and GDCM, I copied the build folders and files to a file share and then ran CMake for the FourPaneViewer on another computer using the vtk 8.2, vtkdicom and GDCM builds on the file share. Will this work or Is it necessary to perform all of the builds on the same system on which I am CMaking and building the QtVTKRenderWindows app?

Just trying to make it easy for other developers to build only the QT app

I’ve never tried putting the build files on a share, so take anything that I say here with a big grain of salt. In general, installing onto a share will work (i.e. use the INSTALL target to install the libraries and headers). However, the build files themselves should not be shared.

Is that a CMake paramenter?

No, it will be a target (aka project) within the visual studio solution that cmake generates.

In visual studio, “ALL_BUILD” will compile the code and “INSTALL” will install the programs/libraries/headers/etc into the location given by the CMAKE_INSTALL_PREFIX (which defaults to “C:\Program Files” if I’m remembering correctly).

@dgobbi OK, thank you David, I’m good now. Finally have everything compiled and running.

@dgobbi - David, you mentioned in a previous response that with a few lines of Python, Splicer could perform the functions of the FourPaneViewer app that I posted a demo of earlier. I am dying to know how that is possible. I installed the latest version of Python yesterday and started playing around with the examples in the document that you referenced. Any more specific info that you could provide would be helpful. The 2 functionalities I will be looking for will be:

  1. Oblique slicing with thick slicing and orientation labels on each of the 3 orthogonal views
  2. Image co-registration and Fusion

Will this be possible? Or am I asking too much? Thanks.

@dgobbi Hey David, I think I posted that last one on the wrong thread Sorry.