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_core/usPreScanToPostScan3DConverter.h>
9 #include <visp3/ustk_gui/us3DSceneWidget.h>
10 #include <visp3/ustk_gui/usVTKConverter.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 +
"/pre-scan/3D_xml/sequencepreScan3D.xml";
31 std::cout <<
"You should set USTK_DATASET_PATH environment var to access to ustk dataset" << std::endl;
37 QApplication app(argc, argv);
53 double startTime = vpTime::measureTimeMs();
54 std::cout <<
"init converter..." << std::endl;
55 converter.
init(preScanImage);
56 double endInitTime = vpTime::measureTimeMs();
57 std::cout <<
"init time (sec) = " << (endInitTime - startTime) / 1000.0 << std::endl;
60 converter.
convert(postScanImage, preScanImage);
61 converter.
convert(postScanImage2, preScanImage2);
64 std::cout <<
"image 1 @ : " << (
void *)postScanImage.
getConstData() << std::endl;
65 std::cout <<
"image 2 @ : " << (
void *)postScanImage2.
getConstData() << std::endl;
69 vtkSmartPointer<vtkImageData> vtkImage = vtkSmartPointer<vtkImageData>::New();
70 vtkSmartPointer<vtkImageData> vtkImage2 = vtkSmartPointer<vtkImageData>::New();
79 vtkImage->GetSpacing(spacing);
81 vtkSmartPointer<vtkPlane> planeX = vtkSmartPointer<vtkPlane>::New();
82 planeX->SetNormal(1, 0, 0);
83 planeX->SetOrigin(postScanImage.
getWidth() * spacing[0] / 2.0, 0, 0);
84 vtkSmartPointer<vtkPlane> planeY = vtkSmartPointer<vtkPlane>::New();
85 planeY->SetNormal(0, 1, 0);
86 planeY->SetOrigin(0, postScanImage.
getHeight() * spacing[1] / 2.0, 0);
87 vtkSmartPointer<vtkPlane> planeZ = vtkSmartPointer<vtkPlane>::New();
88 planeZ->SetNormal(0, 0, 1);
133 int main() { std::cout <<
"Install vtk with qt4 or qt5 support to run this tutorial." << std::endl; }
unsigned int getNumberOfFrames() const
Type * getConstData() const
unsigned int getHeight() const
unsigned int getWidth() const
static void read(usImageRF2D< short int > &imageRf2D, const std::string &headerFileName)
void init(const usImagePreScan3D< unsigned char > &preScanImage, double down=1)
void convert(usImagePostScan3D< unsigned char > &postScanImage, const usImagePreScan3D< unsigned char > &preScanImage)
static void convert(const usImagePostScan3D< unsigned char > &postScanImage, vtkSmartPointer< vtkImageData > &vtkPostScanImage, vtkSmartPointer< vtkImageImport > importer=NULL)
VISP_EXPORT std::string getDataSetPath()