1 #include <visp3/ustk_core/usConfig.h>
3 #ifdef USTK_HAVE_VTK_QT
5 #include <visp3/ustk_core/us.h>
6 #include <visp3/ustk_core/usImageIo.h>
7 #include <visp3/ustk_core/usImagePostScan3D.h>
8 #include <visp3/ustk_gui/us3DSceneWidget.h>
9 #include <visp3/ustk_gui/usVTKConverter.h>
10 #include <vtkMetaImageReader.h>
12 int main(
int argc,
char **argv)
14 std::string mhd_filename;
16 for (
int i = 0; i < argc; i++) {
17 if (std::string(argv[i]) ==
"--input")
18 mhd_filename = std::string(argv[i + 1]);
19 else if (std::string(argv[i]) ==
"--help") {
20 std::cout <<
"\nUsage: " << argv[0] <<
" [--input <preScan3D.xml>] [--help]\n" << std::endl;
26 if (mhd_filename.empty()) {
28 if (!env_ipath.empty())
29 mhd_filename = env_ipath +
"/post-scan/3D_mhd/volume.mhd";
31 std::cout <<
"You should set USTK_DATASET_PATH environment var to access to ustk dataset" << std::endl;
36 vtkSmartPointer<vtkMetaImageReader> reader = vtkSmartPointer<vtkMetaImageReader>::New();
37 reader->SetFileName(mhd_filename.c_str());
40 std::cout <<
"reader output" << std::endl;
42 reader->GetOutput()->Print(std::cout);
45 QApplication app(argc, argv);
51 vtkSmartPointer<vtkImageData> vtkImage = vtkSmartPointer<vtkImageData>::New();
53 vtkSmartPointer<vtkImageImport> importer = vtkSmartPointer<vtkImageImport>::New();
54 importer->SetDataScalarTypeToUnsignedChar();
55 importer->SetWholeExtent(0, postScan3D.
getWidth() - 1, 0, postScan3D.
getHeight() - 1, 0,
57 importer->SetDataExtentToWholeExtent();
58 importer->SetNumberOfScalarComponents(1);
61 vtkImage->Print(std::cout);
68 vtkImage->GetSpacing(spacing);
70 vtkSmartPointer<vtkPlane> planeX = vtkSmartPointer<vtkPlane>::New();
71 planeX->SetNormal(1, 0, 0);
72 planeX->SetOrigin(postScan3D.
getWidth() * spacing[0] / 2.0, 0, 0);
73 vtkSmartPointer<vtkPlane> planeY = vtkSmartPointer<vtkPlane>::New();
74 planeY->SetNormal(0, 1, 0);
75 planeY->SetOrigin(0, postScan3D.
getHeight() * spacing[1] / 2.0, 0);
76 vtkSmartPointer<vtkPlane> planeZ = vtkSmartPointer<vtkPlane>::New();
77 planeZ->SetNormal(0, 0, 1);
81 std::cout <<
"planeZ origin Z" << planeZ->GetOrigin()[2] << std::endl;
84 app.setActiveWindow(&scene);
92 int main() { std::cout <<
"Install vtk with qt4 or qt5 support to run this tutorial." << std::endl; }
unsigned int getNumberOfFrames() const
unsigned int getHeight() const
unsigned int getWidth() const
static void read(usImageRF2D< short int > &imageRf2D, const std::string &headerFileName)
static void convert(const usImagePostScan3D< unsigned char > &postScanImage, vtkSmartPointer< vtkImageData > &vtkPostScanImage, vtkSmartPointer< vtkImageImport > importer=NULL)
VISP_EXPORT std::string getDataSetPath()