4 #include <visp3/ustk_core/usConfig.h>
6 #if (defined(USTK_HAVE_QT5) || defined(USTK_HAVE_VTK_QT)) && (defined(VISP_HAVE_X11) || defined(VISP_HAVE_GDI)) && \
7 defined(USTK_HAVE_FFTW)
9 #include <QApplication>
10 #include <QStringList>
11 #include <QtCore/QThread>
13 #include <visp3/ustk_core/usPreScanToPostScan2DConverter.h>
14 #include <visp3/ustk_core/usRFToPreScan2DConverter.h>
15 #include <visp3/ustk_grabber/usNetworkGrabberRF2D.h>
17 #include <visp3/gui/vpDisplayGDI.h>
18 #include <visp3/gui/vpDisplayX.h>
20 int main(
int argc,
char **argv)
23 QApplication app(argc, argv);
30 if (qApp->arguments().contains(QString(
"--probeID"))) {
31 header.
probeId = qApp->arguments().at(qApp->arguments().indexOf(QString(
"--probeID")) + 1).toInt();
35 if (qApp->arguments().contains(QString(
"--slotID"))) {
36 header.
slotId = qApp->arguments().at(qApp->arguments().indexOf(QString(
"--slotID")) + 1).toInt();
40 if (qApp->arguments().contains(QString(
"--imagingMode"))) {
41 header.
imagingMode = qApp->arguments().at(qApp->arguments().indexOf(QString(
"--imagingMode")) + 1).toInt();
66 #if defined(VISP_HAVE_X11)
68 #elif defined(VISP_HAVE_GDI)
71 bool displayInit =
false;
73 bool captureRunning =
true;
80 std::cout <<
"waiting ultrasound initialisation..." << std::endl;
84 grabbedFrame = qtGrabber->
acquire();
86 std::cout <<
"MAIN THREAD received frame No : " << grabbedFrame->
getFrameCount() << std::endl;
88 double startTime = vpTime::measureTimeMs();
90 converterRF.
convert(*grabbedFrame, preScanImage);
92 double endRFConvertTime = vpTime::measureTimeMs();
93 std::cout <<
"RF conversion time (sec) = " << (endRFConvertTime - startTime) / 1000.0 << std::endl;
95 scanConverter.
convert(preScanImage, postscanImage);
97 double endScanConvertTime = vpTime::measureTimeMs();
98 std::cout <<
"scan-conversion time (sec) = " << (endScanConvertTime - endRFConvertTime) / 1000.0 << std::endl;
101 if (!displayInit && postscanImage.getHeight() != 0 && postscanImage.getWidth() != 0) {
102 #if defined(VISP_HAVE_X11)
103 display =
new vpDisplayX(postscanImage);
104 #elif defined(VISP_HAVE_GDI)
105 display =
new vpDisplayGDI(postscanImage);
112 if (vpDisplay::getClick(postscanImage,
false))
113 captureRunning =
false;
114 vpDisplay::display(postscanImage);
115 vpDisplay::displayText(postscanImage, 20, 20, std::string(
"Click to exit..."), vpColor::red);
116 vpDisplay::flush(postscanImage);
118 }
while (captureRunning);
132 std::cout <<
"You should intall Qt5 (with wigdets and network modules) to run this tutorial" << std::endl;
Class to store additionnal informations arriving on the network with ultrasound images grabbed,...
quint32 getFrameCount() const
void setHeightResolution(double heightResolution)
void setWidthResolution(double widthResolution)
Specific class to grab RF frames from the ultrasound station on the network.
usFrameGrabbedInfo< usImageRF2D< short int > > * acquire()
bool initAcquisition(const usNetworkGrabber::usInitHeaderSent &header)
void convert(const usImagePreScan2D< unsigned char > &preScanImage, usImagePostScan2D< unsigned char > &postScanImage, double xResolution=0., double yResolution=0.)
2D conversion from RF signal to pre-scan image
void convert(const usImageRF2D< short int > &rfImage, usImagePreScan2D< unsigned char > &preScanImage)
void setTransducerConvexity(const bool isTransducerConvex)
void setDepth(double depth)
void setScanLinePitch(const double scanLinePitch)
void setTransducerRadius(const double transducerRadius)
void setTransducerSettings(const usTransducerSettings &other)
void setScanLineNumber(unsigned int scanLineNumber)