Przeglądaj źródła

Add comments to ctkDICOMImage and rename methods

Rename methods to respect the coding guidelines
Julien Finet 14 lat temu
rodzic
commit
3b5c7be21c

+ 1 - 1
Libs/DICOM/Core/Testing/Cpp/ctkDICOMImageTest1.cpp

@@ -29,7 +29,7 @@ int ctkDICOMImageTest1( int argc, char * argv [] )
   ctkDICOMImage ctkImage(&dcmtkImage);
   ctkDICOMImage ctkImage(&dcmtkImage);
 
 
   QLabel qtImage;
   QLabel qtImage;
-  QPixmap pixmap = QPixmap::fromImage(ctkImage.getImage(0),Qt::AvoidDither);
+  QPixmap pixmap = QPixmap::fromImage(ctkImage.frame(0),Qt::AvoidDither);
   if (pixmap.isNull())
   if (pixmap.isNull())
     {
     {
     std::cerr << "Failed to convert QImage to QPixmap" ;
     std::cerr << "Failed to convert QImage to QPixmap" ;

+ 1 - 1
Libs/DICOM/Core/ctkDICOMDatabase.cpp

@@ -437,7 +437,7 @@ void ctkDICOMDatabase::insert ( DcmDataset *dataset, bool storeFile, bool create
       // TODO: reuse dataset
       // TODO: reuse dataset
       DicomImage dcmtkImage(filename.toAscii());
       DicomImage dcmtkImage(filename.toAscii());
       ctkDICOMImage ctkImage(&dcmtkImage);
       ctkDICOMImage ctkImage(&dcmtkImage);
-      QImage image( ctkImage.getImage(0) );
+      QImage image( ctkImage.frame(0) );
       image.scaled(128,128,Qt::KeepAspectRatio).save(thumbnailFilename,"PNG");
       image.scaled(128,128,Qt::KeepAspectRatio).save(thumbnailFilename,"PNG");
     }
     }
   }
   }

+ 15 - 9
Libs/DICOM/Core/ctkDICOMImage.cpp

@@ -62,7 +62,8 @@ ctkDICOMImagePrivate::~ctkDICOMImagePrivate()
 
 
 
 
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
-ctkDICOMImage::ctkDICOMImage(DicomImage* dicomImage, QObject* parentValue): d_ptr(new ctkDICOMImagePrivate(*this))
+ctkDICOMImage::ctkDICOMImage(DicomImage* dicomImage, QObject* parentValue)
+  : d_ptr(new ctkDICOMImagePrivate(*this))
 {
 {
   Q_UNUSED(parentValue);
   Q_UNUSED(parentValue);
   Q_D(ctkDICOMImage);
   Q_D(ctkDICOMImage);
@@ -76,21 +77,26 @@ ctkDICOMImage::~ctkDICOMImage()
 {
 {
 }
 }
 
 
+//------------------------------------------------------------------------------
 unsigned long ctkDICOMImage::frameCount() const
 unsigned long ctkDICOMImage::frameCount() const
 {
 {
   Q_D(const ctkDICOMImage);
   Q_D(const ctkDICOMImage);
   if (d->DicomImage)
   if (d->DicomImage)
-  {
+    {
     return d->DicomImage->getFrameCount();
     return d->DicomImage->getFrameCount();
-  }
+    }
   return 0;
   return 0;
 }
 }
-DicomImage* ctkDICOMImage::getDicomImage() const
+
+//------------------------------------------------------------------------------
+DicomImage* ctkDICOMImage::dicomImage() const
 {
 {
   Q_D(const ctkDICOMImage);
   Q_D(const ctkDICOMImage);
   return d->DicomImage;
   return d->DicomImage;
 }
 }
-QImage ctkDICOMImage::getImage(int frame) const
+
+//------------------------------------------------------------------------------
+QImage ctkDICOMImage::frame(int frame) const
 {
 {
   Q_D(const ctkDICOMImage);
   Q_D(const ctkDICOMImage);
 
 
@@ -98,7 +104,7 @@ QImage ctkDICOMImage::getImage(int frame) const
   // the DCMTK forum, posted by Joerg Riesmayer, see http://forum.dcmtk.org/viewtopic.php?t=120
   // the DCMTK forum, posted by Joerg Riesmayer, see http://forum.dcmtk.org/viewtopic.php?t=120
   QImage image;
   QImage image;
   if ((d->DicomImage != NULL) && (d->DicomImage->getStatus() == EIS_Normal))
   if ((d->DicomImage != NULL) && (d->DicomImage->getStatus() == EIS_Normal))
-  {
+    {
     /* get image extension */
     /* get image extension */
     const unsigned long width = d->DicomImage->getWidth();
     const unsigned long width = d->DicomImage->getWidth();
     const unsigned long height = d->DicomImage->getHeight();
     const unsigned long height = d->DicomImage->getHeight();
@@ -113,13 +119,13 @@ QImage ctkDICOMImage::getImage(int frame) const
     /* copy PGM header to buffer */
     /* copy PGM header to buffer */
 
 
     if (d->DicomImage->getOutputData(static_cast<void *>(buffer.data() + offset), length - offset, 8, frame))
     if (d->DicomImage->getOutputData(static_cast<void *>(buffer.data() + offset), length - offset, 8, frame))
-    {
+      {
 
 
       if (!image.loadFromData( buffer ))
       if (!image.loadFromData( buffer ))
-      {
+        {
         logger.error("QImage couldn't created");
         logger.error("QImage couldn't created");
+        }
       }
       }
     }
     }
-  }
   return image;
   return image;
 }
 }

+ 34 - 4
Libs/DICOM/Core/ctkDICOMImage.h

@@ -24,23 +24,53 @@
 
 
 // Qt includes 
 // Qt includes 
 #include <QObject>
 #include <QObject>
-#include <QPixmap>
+#include <QImage>
 
 
 #include "ctkDICOMCoreExport.h"
 #include "ctkDICOMCoreExport.h"
 
 
 class ctkDICOMImagePrivate;
 class ctkDICOMImagePrivate;
 class DicomImage;
 class DicomImage;
 
 
+/**
+  \brief Wrapper around a DCMTK DicomImage.
+
+  This class wraps a DicomImage object and exposes it as a Qt class.
+*/
 class CTK_DICOM_CORE_EXPORT ctkDICOMImage : public QObject
 class CTK_DICOM_CORE_EXPORT ctkDICOMImage : public QObject
 {
 {
   Q_OBJECT
   Q_OBJECT
+  Q_PROPERTY(unsigned long frameCount READ frameCount);
 public:
 public:
+  /** \brief Construct a ctkDICOMImage
+      The dicomImage pointer must remain valid during all the life of
+      the constructed ctkDICOMImage.
+  */
   explicit ctkDICOMImage(DicomImage* dicomImage, QObject* parent = 0);
   explicit ctkDICOMImage(DicomImage* dicomImage, QObject* parent = 0);
   virtual ~ctkDICOMImage();
   virtual ~ctkDICOMImage();
-  DicomImage* getDicomImage() const;
-  QImage getImage(int frame = 0) const;
+
+  /**
+      \brief Returns the pointer on the dicom image given in the constructor.
+      
+      This is provided as a utility function. Do not delete the returned
+      pointer.
+      TBD: Return a "const DicomImage*" instead?
+  */
+  DicomImage* dicomImage() const;
+
+  /**
+      \brief Returns a specific frame of the dicom image
+  */
+  QImage frame(int frame = 0) const;
+
+  /**
+      \brief Returns the number of frames contained in the dicom image.
+      \sa DicomImage::getFrameCount()
+
+      Please note that this function does not return the number of frames
+      stored in the DICOM file/dataset. It rather refers to the number of
+      frames processed by this class.
+  */
   unsigned long frameCount() const;
   unsigned long frameCount() const;
-  Q_PROPERTY(unsigned long frameCount READ frameCount);
 
 
 protected:
 protected:
   QScopedPointer<ctkDICOMImagePrivate> d_ptr;
   QScopedPointer<ctkDICOMImagePrivate> d_ptr;

+ 1 - 1
Libs/DICOM/Core/ctkDICOMIndexer.cpp

@@ -402,7 +402,7 @@ void ctkDICOMIndexer::addDirectory(ctkDICOMDatabase& database, const QString& di
         QDir(thumbnailBaseDir).mkpath(studySeriesDirectory);
         QDir(thumbnailBaseDir).mkpath(studySeriesDirectory);
         DicomImage dcmtkImage(qfilename.toAscii());
         DicomImage dcmtkImage(qfilename.toAscii());
         ctkDICOMImage ctkImage(&dcmtkImage);
         ctkDICOMImage ctkImage(&dcmtkImage);
-        QImage image( ctkImage.getImage(0) );
+        QImage image( ctkImage.frame(0) );
         image.scaled(128,128,Qt::KeepAspectRatio).save(thumbnailFilename,"PNG");
         image.scaled(128,128,Qt::KeepAspectRatio).save(thumbnailFilename,"PNG");
       }
       }
     }
     }

+ 1 - 1
Libs/DICOM/Widgets/ctkDICOMDatasetView.cpp

@@ -99,7 +99,7 @@ void ctkDICOMDatasetView::addImage( const ctkDICOMImage & image )
 {
 {
   for( unsigned int i=0; i<image.frameCount(); ++i )
   for( unsigned int i=0; i<image.frameCount(); ++i )
     {
     {
-    Superclass::addImage( image.getImage( i ) );
+    Superclass::addImage( image.frame( i ) );
     }
     }
 }
 }