UsTK : Ultrasound ToolKit  version 2.0.1 under development (2025-03-13)
testUsElastography.cpp
1 /****************************************************************************
2  *
3  * This file is part of the ustk software.
4  * Copyright (C) 2016 - 2017 by Inria. All rights reserved.
5  *
6  * This software is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * ("GPL") version 2 as published by the Free Software Foundation.
9  * See the file LICENSE.txt at the root directory of this source
10  * distribution for additional information about the GNU GPL.
11  *
12  * For using ustk with software that can not be combined with the GNU
13  * GPL, please contact Inria about acquiring a ViSP Professional
14  * Edition License.
15  *
16  * This software was developed at:
17  * Inria Rennes - Bretagne Atlantique
18  * Campus Universitaire de Beaulieu
19  * 35042 Rennes Cedex
20  * France
21  *
22  * If you have questions regarding the use of this file, please contact
23  * Inria at ustk@inria.fr
24  *
25  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
26  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27  *
28  * Author:
29  * Marc Pouliquen
30  *
31  *****************************************************************************/
32 #include <iostream>
33 #include <visp3/ustk_core/usConfig.h>
34 
35 #if defined(USTK_HAVE_FFTW)
36 
37 #include <visp3/io/vpImageIo.h>
38 #include <visp3/ustk_core/usImageIo.h>
39 #include <visp3/ustk_elastography/usElastography.h>
40 
41 int main()
42 {
43 
44  // prepare image;
45  usImageRF2D<short int> preComp;
46  usImageRF2D<short int> postComp;
47 
48  std::string image1 = us::getDataSetPath() + std::string("/RFElasto/image00012.mhd");
49  std::string image2 = us::getDataSetPath() + std::string("/RFElasto/image00015.mhd");
50 
51  usImageIo::read(preComp, image1.c_str());
52  usImageIo::read(postComp, image2.c_str());
53 
54  usElastography elastography(preComp, postComp);
55  elastography.setDecimationFactor(1);
56  elastography.setROI(40, 2500, 50, 500);
57 
58  // computate elasto
59  vpImage<unsigned char> strainImage;
60  strainImage = elastography.run();
61 
62  // read groud truth image
63  vpImage<unsigned char> groundTruthStrainImage;
64  std::string groundTruthFileName =
65  us::getDataSetPath() + std::string("/ustk-tests-groudTruth/testElasto_imgRFElasto12&15_ROI-40-2500-50-500.png");
66  vpImageIo::read(groundTruthStrainImage, groundTruthFileName.c_str());
67 
68  // compare
69  if (strainImage == groundTruthStrainImage)
70  return 0;
71 
72  std::cout << "Test failed !\n";
73  return 1;
74 }
75 
76 #else
77 int main()
78 {
79  std::cout << "You should intall FFTW to run this test" << std::endl;
80  return 0;
81 }
82 
83 #endif
Computation of a strain map using two sucessive RF images acquired at different compressions of the p...
static void read(usImageRF2D< short int > &imageRf2D, const std::string &headerFileName)
Definition: usImageIo.cpp:153
VISP_EXPORT std::string getDataSetPath()
Definition: us.cpp:54