SMILX  1.01
Public Slots | Signals | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
milxQtImage Class Reference

This class represents the MILX Qt Image Display object using VTK. More...

#include <milxQtImage.h>

Inheritance diagram for milxQtImage:
milxQtRenderWindow milxQtWindow milxQtDiffusionTensorImage

Public Slots

void userEvent (QMouseEvent *event=NULL)
 
void userEvent (QKeyEvent *event)
 
void userEvent (QWheelEvent *event)
 
virtual void updateCoords (vtkObject *obj)
 Picks the coordinates and pixel value from the current mouse position in the window. More...
 
void updateSlice (vtkObject *obj)
 Updates the display of the slice in the window.
 
void updateTrackedView (vtkObject *obj)
 Updates the display of the slice in the window according to view tracking. More...
 
virtual void contour ()
 Draw contour interactively on images. More...
 
void autoLevel (float percentile=0.99)
 Auto window level the display. Uses Otsu threshold value.
 
void setLevel (int level)
 Set window level the display to proportion of maxValue.
 
vtkImageMapToWindowLevelColors * GetWindowLevel ()
 Returns the internal image window levels data used for display.
 
double GetIntensityWindow ()
 Get the window for the image intensity tranfer function.
 
void SetIntensityWindow (double window)
 Set the window for the image intensity tranfer function.
 
double GetIntensityLevel ()
 Get the level for the image intensity tranfer function.
 
void SetIntensityLevel (double level)
 Set the level for the image intensity tranfer function.
 
void blend (QString filename="", float opacity=-1.0)
 Display a blend of the current image with another image.
 
void blend (milxQtImage *imageToMatch, float opacity=-1.0)
 Display a blend of the current image with another image. Image window can be directly passed into this member.
 
void volumeRendering ()
 Display current image as volume rendering. More...
 
void imageInformation ()
 Displays the origin and other important information about the image (not the displayed image, but internal image used for computation)
 
void rescale ()
 Rescaled the intensities of an image to specified new max and min values.
 
void relabel ()
 Relabel the objects of a labelled image based on connectivity in consecutive order.
 
void histogramEqualisation ()
 Rescale the intensities of an image based on histogram equalisation.
 
void gradientMagnitude ()
 Computes the gradient magnitude of the image and displays it.
 
void sobelEdges ()
 Computes the Sobel edge detection of the image and displays it.
 
void cannyEdges ()
 Computes the Canny edge detection of the image and displays it.
 
void laplacian ()
 Computes the Laplacian of the image and displays it.
 
void normalize ()
 Computes the normalization of the image and displays it.
 
void invertIntensity ()
 Computes the inverse intensities of the image and displays it.
 
void matchInfo (milxQtImage *imageToMatch)
 Matches the info of another image to the current image. See generateMatchedInformation() for more info.
 
void matchInfo (QString filename="")
 Matches the info of another image to the current image. See generateMatchedInformation() for more info.
 
void matchHistogram (milxQtImage *imageToMatch)
 Matches the histogram of another image to the current image. See generateMatchedHistogram() for more info.
 
void matchHistogram (QString filename="")
 Matches the histogram of another image to the current image. See generateMatchedHistogram() for more info.
 
void resample (QString filename="")
 Resamples current image to another image.
 
void mask (QString filename="")
 Masks current image with another image. More...
 
void subsample (size_t xSampleFactor=0, size_t ySampleFactor=0, size_t zSampleFactor=0)
 Downsamples current image by factors given.
 
void crop (QString filename="")
 Masks and crops the current image with another image. More...
 
void resampleLabel (QString filename="")
 Resamples current image as a labelled image (toavoid interpolation artefacts) to another image.
 
void transform (QString filename="", QString refImgFilename="", bool inverse=false)
 Transforms current image given ITK transform file. More...
 
void checkerBoard (QString filename="", int numberOfSquares=0)
 Tiles another image with the current image using alternating squares for comparison. See generateCheckerBoard() for more info.
 
void checkerBoard (milxQtImage *img, int numberOfSquares=0)
 Tiles another image with the current image using alternating squares for comparison. See generateCheckerBoard() for more info. More...
 
void distanceMap (bool signedDistance=true, bool inside=false)
 Computes the distance map of the image and displays it. More...
 
void thresholdAbove (float value=0, float level=0)
 Threshold the image for all values above a given value.
 
void thresholdBelow (float value=0, float level=0)
 Threshold the image for all values below a given value.
 
void threshold (float value=0, float blevel=0, float alevel=0)
 Threshold the image for all values between a band to a given value.
 
void binaryThreshold (float value=0, float blevel=0, float alevel=0)
 Binary Threshold the image for all values between a band to a given value.
 
void otsu (int bins=0)
 Otsu Threshold the image for all values between a band to a given level.
 
void otsuMultiple (int bins=0, int labels=0)
 Otsu Multiple Threshold the image for all values between a band to a given level.
 
void flip (bool xAxis=false, bool yAxis=false, bool zAxis=false, bool aboutOrigin=true)
 Flips the image and displays it. If all the arguments are false, then axes will be asked for using GUI.
 
void surface (const float value=numeric_limits< float >::max())
 Converts the image to a surface using the Marching Cubes algorithm. Ideally suited for binary images. More...
 
void polyData ()
 Converts the image to polygonal data. Ideally suited for any type of image. More...
 
void magnitude ()
 Shows the vector image as a scalar image given by the magnitude of the vectors.
 
void component (int index=-1)
 Shows the vector image as a scalar image given component index.
 
void pseudoImage ()
 Converts the vector image to a pseudo-image, where each vector component is 'coloured'. More...
 
void vectorField (int subsampleFactor=0, float scaling=0.0)
 Converts the vector image to a vector field. More...
 
void streamLines ()
 Converts the vector image to a series of stream lines which all start at the current slice being viewed. More...
 
void anisotropicDiffusion ()
 Computes the anisotropic diffusion (smoothing) of the image and displays it.
 
void gaussianSmooth ()
 Computes the Gaussian smoothing of the image and displays it.
 
void bilateral ()
 Computes the Bilateral smoothing of the image and displays it.
 
void median ()
 Computes the median image and displays it.
 
void zeros (const unsigned long xSize, const unsigned long ySize, const unsigned long zSize, milxQtImage *refImage=NULL)
 Creates image of zeros of size given.
 
void resize (double outputSpacing=0.0)
 Resizes image to spacing given. Currently only does isotropic. More...
 
void resize (const unsigned long xSize, const unsigned long ySize, const unsigned long zSize, milxQtImage *refImage=NULL)
 Resizes image to size given by reference image.
 
void add (milxQtImage *img)
 Adds img to current image.
 
void add (QString filename="")
 Adds img to current image.
 
void subtract (milxQtImage *img)
 Subtracts img from current image.
 
void subtract (QString filename="")
 Subtracts img from current image.
 
void multiply (milxQtImage *img)
 Multiplies img to current image.
 
void multiply (QString filename="")
 Multiplies img to current image.
 
void scale (float scaling)
 scales the intensities of current images.
 
void convolve (milxQtImage *img)
 Convolves img to current image.
 
void highpass ()
 Applies Butterworth high pass filter to image. More...
 
void interpolateDisplay (const bool quietly=false)
 Toggles interpolation. More...
 
void disableInterpolateDisplay ()
 
void enableInterpolateDisplay ()
 
void applyOrientDisplay (const bool quietly=false)
 Toggles applying the orientation matrix of the image. More...
 
void disableApplyOrientDisplay ()
 
void enableApplyOrientDisplay ()
 
void setDefaultOrientation (int orientMode)
 Change orientation mode to one of the supported standards. Default: Radiological. More...
 
virtual void enableScale (QString title="", const bool quiet=false, double minRange=0.0, double maxRange=0.0, int noOfLabels=3)
 Enable scale bar display with the title provided. More...
 
virtual void scaleDisplay (const bool forceDisplay=false)
 Toggles the scale bar display. More...
 
virtual void showCrosshair (const bool quietly=false)
 Show the cursor/crosshair for marking depending on action. Image must be generated before calling.
 
virtual void enableCrosshair ()
 Enables the cursor/crosshair for marking. Image must be generated before calling.
 
virtual void disableCrosshair ()
 removes the cursor/crosshair.
 
virtual void enableCrosshairPointer ()
 Enables the mouse pointer as a crosshair instead. Scene must be rendered before calling.
 
virtual void disableCrosshairPointer ()
 Restores the mouse pointer to default.
 
void setView (int viewMode)
 Change view to view mode identified by number. 0-axial, 1-coronal, 2-sagittal.
 
virtual void viewToXYPlane ()
 Change view to xy-plane.
 
virtual void viewToZXPlane ()
 Change view to zx-plane.
 
virtual void viewToZYPlane ()
 Change view to zy-plane.
 
void setCrosshairPosition (double *position)
 Set the position of the Crosshair.
 
double * getCrosshairPosition ()
 Get the position of the Crosshair.
 
virtual void updateLookupTable ()
 Sets the necessary LUTs to model view.
 
void histogram (int bins=256, float belowValue=0, float aboveValue=255, bool plotHistogram=true)
 Computes the histogram of the image and prints info found. More...
 
void surfacePlot ()
 Surface plot of slice.
 
void setSlice (int slice)
 Sets the slice of the volume to slice value given. More...
 
int getSlice ()
 Gets the current slice of the volume.
 
double getIntensityWindow ()
 Get or set the window/level for the image intensity tranfert function.
 
double getIntensityLevel ()
 Get or set the window/level for the image intensity tranfert function.
 
void setIntensityWindow (double window)
 Get or set the window/level for the image intensity tranfert function.
 
void setIntensityLevel (double level)
 Get or set the window/level for the image intensity tranfert function.
 
void refresh ()
 Refresh display.
 
void reset ()
 Update data internally and refresh display.
 
virtual void createMenu (QMenu *menu)
 Create the menu for the data in this object. Used for context menu and file menus.
 
void generateImage (const bool quietly=false)
 Assigns the array data to the image and setups up the viewer. More...
 
void generateVoxelisedSurface (vtkSmartPointer< vtkPolyData > surfaceToVoxelise, double *bounds=NULL, double *spacing=NULL)
 Converts or Voxelises a surface (vtkPolyData) to an image.
 
virtual void customOperation ()
 Custom operation, data dependent for viewing in unified environment. More...
 
void updateModelActor (vtkObject *obj, unsigned long, void *client_data, void *, vtkCommand *command)
 
void updateDisplay (QPointer< milxQtImage > img)
 
- Public Slots inherited from milxQtRenderWindow
void addModelActor (vtkSmartPointer< vtkActor > mdlActor)
 Directly add model actor to generic view. More...
 
void removeModelActor (vtkSmartPointer< vtkActor > mdlActor)
 Directly remove model actor from generic view. More...
 
void addActor (vtkSmartPointer< vtkActor > imgActor, vtkMatrix4x4 *transformMatrix=NULL)
 Directly add actor to generic view with transform matrix. More...
 
void addImageActor (vtkSmartPointer< vtkImageActor > imgActor, vtkMatrix4x4 *transformMatrix=NULL)
 Directly add image actor to generic view. More...
 
void removeImageActor (vtkSmartPointer< vtkImageActor > imgActor)
 Directly remove image actor from generic view. More...
 
void importFrom (milxQtRenderWindow *windowToImportFrom)
 Import actors/scene directly from another renderwindow. More...
 
void importViewFrom (milxQtRenderWindow *windowToImportFrom)
 Same as importFrom()
 
virtual void updateTextActor (vtkObject *obj, unsigned long, void *client_data, void *, vtkCommand *command)
 Update any text actors in display to current slice.
 
virtual void updateImageActor (vtkObject *obj, unsigned long, void *client_data, void *, vtkCommand *command)
 Update any image actors in display to current slice when slice number changes.
 
virtual void updateImageActor (vtkSmartPointer< vtkImageActor > actor)
 
void userEvent (QMouseEvent *event=NULL)
 
void userEvent (QKeyEvent *event)
 
void userEvent (QWheelEvent *event)
 
void refresh ()
 Refresh the display of the model including widgets. Camera remains as is.
 
vtkSmartPointer< vtkMatrix4x4 > getTransformMatrix ()
 Internal transform matrix used to transform actors appropriately for direction and coordinate systems.
 
void reset ()
 Reset the rendering, camera and windowing.
 
bool isLoaded ()
 Is the data successfully loaded? Use this to check if all is ok with data display.
 
void linkProgressEventOf (vtkObject *obj)
 Link the progress of filters etc to keep the UI responsive.
 
virtual void updateCoords (vtkObject *obj)
 Picks the coordinates and pixel value from the current mouse position in the window. More...
 
virtual void contour ()
 Draw contour interactively.
 
void contourAsPolyData ()
 Save contour as polydata/model. This saves all intermediate points, not just what the user places.
 
void contourAsNodePolyData ()
 Save contour as polydata/model. This only saves the points the user has placed.
 
void contourInitFromPolyData (QString filename="")
 Load contour from polydata/model. More...
 
void enableAxes (float xScale=1.0, float yScale=1.0, float zScale=1.0)
 Enable axes display with each arrow for dimension scaled as provided.
 
void disableAxes ()
 Disables the axes display.
 
void axesDisplay ()
 Toggles the axes display.
 
void disableOrient ()
 Disables orientation marker.
 
void orientDisplay ()
 Toggles orientation marker.
 
virtual void background (bool white=false)
 Changes background to white.
 
void lighting ()
 Toggles two sided lighting in display.
 
void textDisplay ()
 Toggles text in display.
 
void crosshair ()
 Toggles corsshair.
 
virtual void viewToXYPlane ()
 Change view to xy-plane.
 
void viewToAxial ()
 
virtual void viewToZXPlane ()
 Change view to zx-plane.
 
void viewToCoronal ()
 
virtual void viewToZYPlane ()
 Change view to zy-plane.
 
void viewToSagittal ()
 
int getDefaultOrientation ()
 Get the orientation mode to one of the supported standards. More...
 
void setDefaultOrientation (int orientMode)
 Change orientation mode to one of the supported standards. Default: Radiological. More...
 
int getView ()
 Return current view mode identified by number. 0-axial, 1-coronal, 2-sagittal.
 
void setView (int viewMode)
 Change view to view mode identified by number. 0-axial, 1-coronal, 2-sagittal. More...
 
void enableActionBasedOnView ()
 Enables the view actions corresponding to current view set.
 
void disableDefaultView ()
 Disables the default view whenever data is process or displayed. Enabled by default. More...
 
void enableDefaultView ()
 
void setDefaultView (int viewMode)
 Change default view to view mode identified by number. 0-axial, 1-coronal, 2-sagittal.
 
void saveView (QString filename="")
 
void saveViewFile ()
 
void loadView (QString filename="")
 Saves the camera details to internal variables that can be restore anytime with loadView().
 
void loadViewFile ()
 
virtual void enableScale (QString title="", const bool quiet=false, double minRange=0.0, double maxRange=0.0, int noOfLabels=3)
 Enable scale bar display with the title provided. More...
 
virtual void disableScale ()
 Disables the scale bar display.
 
virtual void enableCrosshair ()
 Enables the mouse pointer as a crosshair instead. Scene must be rendered before calling.
 
virtual void disableCrosshair ()
 Restores the mouse pointer to default.
 
virtual void scaleDisplay (const bool forceDisplay=false)
 Toggles the scale bar display. More...
 
virtual void colourMapToRainbow (double minRange=0.0, double maxRange=0.0)
 Change the colour map to default VTK which is rainbow.
 
virtual void colourMapToVTK (double minRange=0.0, double maxRange=0.0)
 Change the colour map to inverse of default VTK.
 
virtual void colourMapToGray (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Gray.
 
virtual void colourMapToSeismic (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Seismic.
 
virtual void colourMapToLogGray (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Logarithmic (base 10) Gray.
 
virtual void colourMapToJet (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Jet.
 
virtual void colourMapToNIH (double minRange=0.0, double maxRange=0.0)
 Change the colour map to NIH.
 
virtual void colourMapToNIH_Fire (double minRange=0.0, double maxRange=0.0)
 Change the colour map to NIH Fire.
 
virtual void colourMapToAAL (double minRange=0.0, double maxRange=0.0)
 Change the colour map to AAL.
 
virtual void colourMapToFS (double minRange=0.0, double maxRange=0.0)
 Change the colour map to FS (FreeSurfer)
 
virtual void colourMapToHOT (double minRange=0.0, double maxRange=0.0)
 Change the colour map to HOT.
 
virtual void colourMapToCOOL (double minRange=0.0, double maxRange=0.0)
 Change the colour map to COOL.
 
virtual void colourMapToCOOLWARM (double minRange=0.0, double maxRange=0.0)
 Change the colour map to COOL.
 
virtual void colourMapToKnee (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Knee.
 
virtual void colourMapToBone (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Bone.
 
virtual void colourMapToSpectral (double minRange=0.0, double maxRange=0.0)
 Change the colour map to Spectral.
 
virtual void colourMapToGNUPlot (double minRange=0.0, double maxRange=0.0)
 Change the colour map to GNUPlot.
 
virtual void colourMapToCubeHelix (double minRange=0.0, double maxRange=0.0)
 Change the colour map to CubeHelix.
 
virtual void colourMapToHSV (double minRange=0.0, double maxRange=0.0)
 Change the colour map to HSV.
 
virtual void updateLookupTable ()
 Implement this into your derived class to ensure the new colourmap is passed on to your viewing data (image, model etc.)
 
void generateRender ()
 Generate the render so it is ready for display. Should be called before showing the window. More...
 
void setCustomActionGroup (QActionGroup *actionGrp)
 Set the action group for the menu with custom connections.
 
void createCustomConnections (QList< QAction *> actionsInMenu)
 
void createCustomConnections (QMenu *fromMenu)
 Create a series of connections on each action in group which will be placed into the context menu.
 
virtual void customOperation ()
 Custom operation, data dependent for viewing in unified environment. By default, this allows importing of actors into the current views. More...
 
virtual void createMenu (QMenu *menu)
 Create the menu for the data in this object. Used for context menu and file menus. More...
 
bool openModelUsingQt (const QString filename, vtkSmartPointer< vtkPolyData > &data)
 Opens a model file using Qt file objects, which can be a Wavefront Object file (*.obj) only. This member is intended to be used with the Qt resource system. More...
 
- Public Slots inherited from milxQtWindow
void setName (const QString filename)
 Set the name of the data.
 
QString getName ()
 Returns the name of the data.
 
void rename ()
 Renames the data.
 
QString strippedName ()
 Returns the stripped (path removed) name of the data.
 
QString strippedBaseName ()
 Returns the stripped (path removed) base (no suffix) name of the data.
 
void setNamePrefix (const QString newPrefix)
 Sets the prefix of the name of the data provided.
 
void addToContextMenu (QAction *act)
 Adds (prepends) the action to the context menu. Connections are assumed to be made before hand.
 
void appendToContextMenu (QAction *act)
 Adds (appends) the action to the context menu. Connections are assumed to be made before hand.
 
void addToContextMenu (QMenu *newMenu)
 Adds the menu to the context menu. Connections are assumed to be made before hand.
 
void addExtensionAction (QAction *act)
 Adds (in extension section) the action as an extension action. Connections are assumed to be made before hand.
 
void addMenuToContextMenu (QMenu *newMenu)
 Adds (prepends) the menu to the context menu. Connections are assumed to be made before hand.
 
void appendMenuToContextMenu (QMenu *newMenu)
 Adds (appends) the menu to the context menu. Connections are assumed to be made before hand.
 
virtual void copyToContextMenu (QMenu *copyMenu)
 Copies the menu, by duplicating the entries, to the context menu. Connections are assumed to be made before hand.
 
void setVerboseMode (bool verbose)
 Verbose mode for message output.
 
void setDeletableOnClose (bool delOnClose)
 Set if the window deletable on close. Default is true.
 
bool isDeletableOnClose ()
 Is the window deletable on close?
 
void setConsole (milxQtConsole *con)
 Set the console for log output.
 
void consumeVTKEvent (vtkObject *obj, unsigned long, void *client_data, void *, vtkCommand *command)
 Consume the event so that VTK interactor style doesn't get it. Safeguard for if remove observer directives have missed some bindings.
 
void updateQtEvents ()
 Update the Qt events, used to keep UI responsive.
 

Signals

void imageToSurface (vtkSmartPointer< vtkImageData >, const float)
 Emit signal to compute image to surface process.
 
void imageToPolyData (vtkSmartPointer< vtkImageData >)
 Emit signal to compute image to poly data process.
 
void imageToPseudoImage (vectorImageType::Pointer)
 Emit signal to compute image to pseudo-image process.
 
void imageToVectorField (vectorImageType::Pointer, floatImageType::Pointer, int, float)
 Emit signal to compute image to vector field process.
 
void imageToTensorField (vectorImageType::Pointer, floatImageType::Pointer, int, float)
 Emit signal to compute image to tensor field process.
 
void imageToStreamLines (vectorImageType::Pointer, floatImageType::Pointer)
 Emit signal to compute image streamlines of vector field process. Every pixel in the float image is used to seed the lines.
 
void imageToVolume (vtkSmartPointer< vtkImageData >, bool)
 Emit signal to show the image as a volume.
 
void imageToPlot (vtkSmartPointer< vtkImageData >, int)
 Emit signal to show the image as a plot.
 
void modified (QPointer< milxQtImage >)
 Emit signal to send updated image data. Used for updating dependent displays.
 
void coordinateChanged (int, int, int)
 Emit signal with the coordinate user is changed pointing to.
 
- Signals inherited from milxQtRenderWindow
void imageAvailable (vtkImageData *, QString)
 Send signal that an image is available for showing.
 
void modelAvailable (vtkPolyData *, QString)
 Send signal that an surface etc. is available for showing.
 
void tableToPlot (vtkSmartPointer< vtkTable >, QString)
 Emit signal to show the table as a plot.
 
void modified (vtkSmartPointer< vtkImageActor >)
 Emit signal to allow updating of image actors if present.
 
- Signals inherited from milxQtWindow
void closing (QWidget *win)
 Send signal that the window is closing.
 
void nameChanged (const QString newName)
 Send signal that the data has been renamed.
 
void working (int value)
 Send signal that computation is in progress. Value carries the progress,.
 
void done (int value)
 Send signal that computation is done. Value carries the progress,.
 

Public Member Functions

 milxQtImage (QWidget *theParent=0, bool contextSystem=true)
 The standard constructor. More...
 
virtual ~milxQtImage ()
 The standard destructor. More...
 
virtual const char * GetNameOfClass () const
 ITK interfacing member for exceptions.
 
QString strippedNamePrefix ()
 Returns the stripped (path removed) name of the data with "Image" prefix.
 
void SetInput (vtkSmartPointer< vtkImageData > newImg)
 VTK interface function: Assigns the image data internally. Same as setData() function.
 
void SetInput (charImageType::Pointer newImg, const bool flipY=true)
 ITK interface function: Assigns the image data internally. Same as setData() function. More...
 
void SetInput (intImageType::Pointer newImg, const bool flipY=true)
 ITK interface function: Assigns the image data internally. Same as setData() function. More...
 
void SetInput (rgbImageType::Pointer newImg, const bool flipY=true)
 ITK interface function: Assigns the image data internally. Same as setData() function. More...
 
void SetInput (floatImageType::Pointer newImg, const bool flipY=true)
 ITK interface function: Assigns the image data internally. Same as setData() function. More...
 
void SetInput (vectorImageType::Pointer newImg, const bool flipY=true)
 ITK interface function: Assigns the image data internally. Same as setData() function. More...
 
void SetTransform (vtkSmartPointer< vtkTransform > transform)
 Sets the transform for the image that will be generated. Must pass a vtkTransform objects, which is easy to use. More...
 
void setData (QPointer< milxQtImage > newImg, const bool forceDeepCopy=false)
 Assigns the milxQtImage data to current image. You will need to call generate image after this. More...
 
void setData (vtkSmartPointer< vtkImageData > newImg)
 Assigns the VTK array data to image. You will need to call generate image after this.
 
void setData (charImageType::Pointer newImg, const bool flipY=true)
 Assigns the ITK image data to image. You will need to call generate image after this. More...
 
void setData (intImageType::Pointer newImg, const bool flipY=true)
 Assigns the ITK image data to image. You will need to call generate image after this. More...
 
void setData (rgbImageType::Pointer newImg, const bool flipY=true)
 Assigns the ITK image data to image. You will need to call generate image after this. More...
 
void setData (floatImageType::Pointer newImg, const bool flipY=true)
 Assigns the ITK image data to image. You will need to call generate image after this. More...
 
void setData (vectorImageType::Pointer newImg, const bool flipY=true, const bool deepCopy=false)
 Assigns the ITK image data to image. You will need to call generate image after this. More...
 
void setData (vnl_matrix< double > &newData)
 Assigns the VNL Matrix to image. You will need to call generate image after this.
 
void setData (const unsigned slice, vnl_matrix< double > &newData)
 Assigns the VNL Matrix to a slice of the image. You will need to call generate image after this. Possibly BROKEN.
 
void setDisplayData (QPointer< milxQtImage > newImg)
 Shares the milxQtImage data to current image. You will need to call generate image after this. More...
 
void setSharedData (QPointer< milxQtImage > newImg)
 Shares the ITK image data to image (same as setDisplayData()). You will need to call generate image after this.
 
void setDisplayData (charImageType::Pointer newImg, const bool flipY=true)
 Shares the ITK image data to image. You will need to call generate image after this. More...
 
void setSharedData (charImageType::Pointer newImg, const bool flipY=true)
 Shares the ITK image data to image (same as setDisplayData()). You will need to call generate image after this.
 
void setDisplayData (intImageType::Pointer newImg, const bool flipY=true)
 Shares the ITK image data to image. You will need to call generate image after this. More...
 
void setSharedData (intImageType::Pointer newImg, const bool flipY=true)
 Shares the ITK image data to image (same as setDisplayData()). You will need to call generate image after this.
 
void setDisplayData (rgbImageType::Pointer newImg, const bool flipY=true)
 Shares the ITK image data to image. You will need to call generate image after this. More...
 
void setSharedData (rgbImageType::Pointer newImg, const bool flipY=true)
 Shares the ITK image data to image (same as setDisplayData()). You will need to call generate image after this.
 
void setDisplayData (floatImageType::Pointer newImg, const bool flipY=true)
 Shares the ITK image data to image. You will need to call generate image after this. More...
 
void setSharedData (floatImageType::Pointer newImg, const bool flipY=true)
 Shares the ITK image data to image (same as setDisplayData()). You will need to call generate image after this.
 
void setDisplayData (vectorImageType::Pointer newImg, const bool flipY=true)
 Shares the ITK image data to image. You will need to call generate image after this. More...
 
void setSharedData (vectorImageType::Pointer newImg, const bool flipY=true)
 Shares the ITK image data to image (same as setDisplayData()). You will need to call generate image after this.
 
vtkSmartPointer< vtkImageData > GetOutput ()
 Returns the image data object (ImageData) used internally VTK style.
 
charImageType::Pointer GetCharImage ()
 Returns the internal unsigned char image data.
 
intImageType::Pointer GetIntImage ()
 Returns the internal unsigned char image data.
 
rgbImageType::Pointer GetRGBImage ()
 Returns the internal RGB image data.
 
floatImageType::Pointer GetFloatImage ()
 Returns the internal float image data.
 
vectorImageType::Pointer GetVectorImage ()
 Returns the internal vector image data. Unlike the other Get*Image() members, the return value can be NULL. More...
 
vtkAlgorithmOutput * GetOutputPort ()
 Returns the image data object (ImageData) producer port used internally VTK style.
 
vtkImageActor * GetImageActor ()
 Returns the internal image actor used for display.
 
void SetCursor (vtkCursor3D *newCursor)
 
vtkCursor3D * GetCursor ()
 
void SetCursorActor (vtkActor *newCursorActor)
 Set the internal cursor actor used for display.
 
vtkProp3D * GetCursorActor ()
 Set the internal cursor used for display. More...
 
int * GetDisplayExtent ()
 Returns the current display extent of the image data, i.e the current slice dimensions/extents.
 
virtual vtkDataSet * GetDataSet ()
 Get the data, return the vtkImageData object downcast to vtkDataSet, useful for getting scalar range etc.
 
virtual vtkRenderWindowInteractor * GetVTKInteractor ()
 Get the interactor associated with the view rendering.
 
void set8BitImage ()
 Sets image as an 8-bit (unsigned char) image. Relevant only for when creating images, otherwise automatically set.
 
bool is8BitImage ()
 Returns true if image is an 8-bit (unsigned char) image.
 
void set32BitImage ()
 Sets image as an 32-bit (int) image. Relevant only for when creating images, otherwise automatically set.
 
bool is32BitImage ()
 Returns true if image is an 32-bit (int) image.
 
void setRGBImage ()
 Sets image as an RGB (3-vector unsigned char image) image. Relevant only for when creating images, otherwise automatically set.
 
bool isRGBImage ()
 Returns true if image is an RGB (3-vector unsigned char image) image.
 
void setFloatingPointImage ()
 Sets image is a floating point (float) image. Relevant only for when creating images, otherwise automatically set.
 
bool isFloatingPointImage ()
 Returns true if image is a floating point (float) image.
 
void setVectorImage ()
 Sets image as a vector image. Relevant only for when creating images, otherwise automatically set.
 
bool isVectorImage ()
 Returns true if image is a vector image.
 
bool isVTKImage ()
 Returns true if image is a VTK-type image.
 
bool isDisplayFlipped ()
 Returns true if image was flipped internally for display purposes only. More...
 
bool isInterpolated ()
 Returns true if image display is interpolated.
 
bool isOriented ()
 Returns true if orientation is applied to the display of the image.
 
bool isCrosshair ()
 Returns true if cursor shown to the display of the image.
 
void setActualNumberOfDimensions (const size_t dims)
 Sets the actual number of dimensions of the image. More...
 
size_t getActualNumberOfDimensions ()
 
void trackView (milxQtImage *windowToTrack, ViewType viewTo)
 Enables tracking of the view (axial etc.) to imgToTrack provided. More...
 
vtkSmartPointer< vtkImageData > butterWorthHighPass (vtkSmartPointer< vtkImageData > img)
 
- Public Member Functions inherited from milxQtRenderWindow
 milxQtRenderWindow (QWidget *theParent=0, bool contextSystem=true)
 The standard constructor. More...
 
virtual ~milxQtRenderWindow ()
 The standard destructor.
 
void contextMenuSystem (bool context)
 Disable/enable context menu system, should be on by default otherwise VTK will steal all right click events. More...
 
void AddActor (vtkSmartPointer< vtkProp > actor)
 Add a VTK actor to this window.
 
void AddVolume (vtkSmartPointer< vtkVolume > actor)
 Add a VTK volume to this window.
 
void AddActor2D (vtkSmartPointer< vtkProp > actor)
 Add a VTK actor to this window.
 
void SetActor (vtkSmartPointer< vtkProp > actor)
 Add a VTK actor to this window. Alias for AddActor.
 
void SetActor2D (vtkSmartPointer< vtkProp > actor)
 Add a VTK actor to this window. Alias for AddActor2D.
 
void SetBackground (double red, double green, double blue)
 Set the background of the display window.
 
void SetSize (int height, int width)
 Set the size of the display window.
 
void SetLookupTable (vtkSmartPointer< vtkLookupTable > lut)
 Set the lookup table of the colours in display window.
 
void RemoveAllActors ()
 Remove all VTK actors from this window.
 
void RemoveActor (vtkSmartPointer< vtkProp > actor)
 Remove the VTK actor from this window.
 
void RemoveActor2D (vtkSmartPointer< vtkProp > actor)
 Remove the VTK 2D actor from this window.
 
vtkActorCollection * GetActors ()
 Get all the actors in the render window.
 
vtkVolumeCollection * GetVolumes ()
 Get all the actors in the render window.
 
vtkLookupTable * GetLookupTable ()
 Get the lookup table of the colours in display window.
 
void SetScalarBar (vtkScalarBarActor *bar)
 Get the scalar bar of the display window.
 
vtkScalarBarActor * GetScalarBar ()
 Get the scalar bar of the display window.
 
void GetBackground (double &red, double &green, double &blue)
 Get the background of the display window.
 
void SetRenderer (vtkRenderer *rnder)
 Assigns a VTK Renderer object.
 
vtkRenderer * GetRenderer ()
 Returns the VTK Renderer object.
 
void OffScreenRenderingOn ()
 Enable off-screen rendering, which is faster for large datasets in some instances.
 
void OffScreenRenderingOff ()
 Disable off-screen rendering, which is faster for large datasets in some instances.
 
void Render ()
 Force Render or Update of the display.
 
void enableUpdates (QStatusBar *bar)
 Enables the update of coordinates to the status bar provided directly. Update is done on mouse movement.
 
- Public Member Functions inherited from milxQtWindow
 milxQtWindow (QWidget *theParent=0)
 The standard constructor. More...
 
virtual ~milxQtWindow ()
 The standard destructor.
 

Protected Member Functions

void updateData (const bool orient=true)
 Ensures the internal visualisation data is up to date. More...
 
void setupEvents ()
 Executes common events setup and connections code for image viewing. More...
 
void createActions ()
 Create the actions for context menu etc. More...
 
void createConnections ()
 Create the connections for context menu etc.
 
void contextMenuEvent (QContextMenuEvent *event)
 The context menu setup member.
 
QMenu * basicContextMenu ()
 Return the basic context menu with the milxQtImage class ordering. This is for the benefit of derived class context menus and/or extensions. More...
 
QMenu * operationsMenu ()
 Return the operations menu with the milxQtImage class ordering. This is for the benefit of derived class context menus and/or extensions.
 
QMenu * thresholdsMenu ()
 Return the thresholds menu with the milxQtImage class ordering. This is for the benefit of derived class context menus and/or extensions.
 
QMenu * transformsMenu ()
 Return the transforms menu with the milxQtImage class ordering. This is for the benefit of derived class context menus and/or extensions.
 
QMenu * vectorsMenu ()
 Return the vector imaging menu with the milxQtImage class ordering. This is for the benefit of derived class context menus and/or extensions.
 
void dropEvent (QDropEvent *event)
 Part of the Drag and Drop feature members. Opens the dropped files.
 
virtual void SetupWidgets (vtkRenderWindowInteractor *interactor)
 Update the interactor so that the widgets are usable. Resizing widges for image objects.
 
void updateViewer (vtkObject *obj, unsigned long, void *client_data, void *, vtkCommand *command)
 Update the viewer image data to reflect changes.
 
QString getOpenFilename (const QString labelForDialog="Select Image", QString exts="")
 Use the QFileDialog to get an image filename.
 
- Protected Member Functions inherited from milxQtRenderWindow
void createActions ()
 Create the actions for context menu etc.
 
void createConnections ()
 Create the connections for context menu etc.
 
void contextMenuEvent (QContextMenuEvent *event)
 The context menu setup member. More...
 
QMenu * colourMapsMenu ()
 Return the colourmaps menu with the milxQtRenderWindow class ordering. This is for the benefit of derived class context menus and/or extensions.
 
void dragMoveEvent (QDragMoveEvent *event)
 Part of the Drag and Drop feature members. Accepts drags.
 
void dragLeaveEvent (QDragLeaveEvent *event)
 Part of the Drag and Drop feature members. Accepts drags.
 
void dragEnterEvent (QDragEnterEvent *event)
 Part of the Drag and Drop feature members. Tells what drags to accept.
 
void mouseDoubleClickEvent (QMouseEvent *event)
 Part of the Drag and Drop feature members. Triggers the dragging on double click.
 
void dropEvent (QDropEvent *event)
 Part of the Drag and Drop feature members. Opens the dropped files.
 
void setupHumanGlyph (vtkSmartPointer< vtkMatrix4x4 > mat=NULL)
 Setup the human orientation glyph even if some transform if present between glyph and view.
 
- Protected Member Functions inherited from milxQtWindow
void createConnections ()
 Create the connections for context menu etc.
 
void closeEvent (QCloseEvent *clEvent)
 When closing, execute this member.
 
void printError (QString msg)
 Error message wrapper for console.
 
void printWarning (QString msg)
 Warning message wrapper for console.
 
void printDebug (QString msg)
 Debug message wrapper for console.
 
void printInfo (QString msg)
 Info message wrapper for console.
 

Protected Attributes

bool usingVTKImage
 using VTK image data?
 
bool imported
 Imported before?
 
bool appendedData
 Appended image data?
 
bool eightbit
 Using eightbit data?
 
bool integer
 Using integer data?
 
bool rgb
 Using RGB data?
 
bool vectorised
 Using Vector image data?
 
bool viewerSetup
 has the viewer/window been setup (only done initial so is to not disturb users settings)
 
bool volume
 is the image a volume?
 
bool flipped
 Flip for display?
 
bool track
 track the coordinates during user interaction
 
charImageType::Pointer imageChar
 Up to date 8-bit greyscale image data.
 
intImageType::Pointer imageInt
 Up to date 32-bit greyscale image data.
 
rgbImageType::Pointer imageRGB
 Up to date 32-bit image data (used only internally atm)
 
floatImageType::Pointer imageFloat
 Up to date floating point image data.
 
vectorImageType::Pointer imageVector
 Up to date vector image data.
 
size_t actualNumberOfDimensions
 All images loaded as 3D images or 3D vector images, this shows actual dimension.
 
ViewType viewToTrack
 In tracking mode, what slice to show.
 
vtkSmartPointer< vtkImageViewer3viewer
 VTK Viewer handler, Smart Pointer.
 
vtkSmartPointer< vtkImageData > imageData
 Points to the current VTK Image Data, Smart Pointer.
 
vtkSmartPointer< vtkImageAppend > imageDataAppended
 Appended Data.
 
vtkSmartPointer< vtkImagePermute > permute
 Permute axis class, Smart Pointer.
 
vtkSmartPointer< vtkImageAccumulate > hist
 Histogram filter, allocated on histogram() call.
 
QList< ModelActorItemmodelActors
 Model actors being displayed in image view.
 
itkEventQtObserver::Pointer observeProgress
 Observer for the Qt event loop.
 
double meanValue
 Other Variables. More...
 
double stddevValue
 Std deviation data value currently held.
 
double minValue
 min value in image
 
double maxValue
 max value in image
 
QMenu * operateMenu
 Operate Menu.
 
QAction * rescaleAct
 Action for contouring image.
 
QAction * equaliseAct
 Action for contouring image.
 
QAction * computeContourAct
 Action for contouring image.
 
QAction * smoothAct
 Action for smoothing of image.
 
QAction * gaussianAct
 Action for Gaussian smoothing of image.
 
QAction * bilateralAct
 Action for bilateral smoothing of image.
 
QAction * medianAct
 Action for median smoothing of image.
 
QAction * gradMagAct
 Action for gradient magnitude of image.
 
QAction * sobelAct
 Action for sobel edges of image.
 
QAction * cannyAct
 Action for canny edges of image.
 
QAction * laplacianAct
 Action for Laplacian of image.
 
QAction * highPassAct
 Action for high pass filtering of image.
 
QAction * normAct
 Action for normalization of image.
 
QAction * invertAct
 Action for invert intensity of image.
 
QAction * relabelAct
 Action for relabelling image.
 
QMenu * transformMenu
 Transform Menu.
 
QAction * matchAct
 Action for matching info of image to another image.
 
QAction * matchHistAct
 Action for matching histogram of image.
 
QAction * resampleSpacingAct
 Action for resampling image based on spacing.
 
QAction * resampleAct
 Action for resampling image.
 
QAction * resampleLabelAct
 Action for resampling image.
 
QAction * subsampleAct
 Action for downsampling image.
 
QAction * transformAct
 Action for transforming image.
 
QAction * maskAct
 Action for resampling image.
 
QAction * cropAct
 Action for auto cropping image.
 
QAction * checkerAct
 Action for checkerboard of image.
 
QAction * distMapAct
 Action for distance map of image.
 
QAction * flipAct
 Action for flipping image.
 
QAction * surfaceAct
 Action for image to surface.
 
QAction * polyDataAct
 Action for image to poly data.
 
QMenu * thresholdMenu
 Threshold Menu.
 
QAction * otsuAct
 Otsu Threshold.
 
QAction * otsuMultipleAct
 Otsu Threshold.
 
QAction * binaryAct
 Binary Threshold.
 
QAction * bandAct
 Threshold inbetween band.
 
QAction * aboveAct
 Threshold from above.
 
QAction * belowAct
 Threshold from below.
 
QMenu * vectorMenu
 Vector Menu.
 
QAction * vectorMagnitudeAct
 Action for displaying magnitude of vector images.
 
QAction * vectorComponentAct
 Action for displaying components of vector images.
 
QAction * pseudoImageAct
 Action for displaying vector/tensor fields as a pseudo image.
 
QAction * vectorFieldAct
 Action for displaying vector/tensor fields.
 
QAction * streamLinesAct
 Action for displaying stream lines.
 
QAction * levelAct
 Action for auto-levelling gamma for display.
 
QAction * overlayAct
 Action for overlaying labelled image.
 
QAction * overlayContourAct
 Action for overlaying labelled image as contour.
 
QAction * blendAct
 Action for blending images.
 
QAction * volRenderAct
 Action for volume rendering.
 
QAction * histogramAct
 Action for displaying histogram.
 
QAction * surfacePlotAct
 Action for displaying surface plot.
 
QAction * infoAct
 Action for displaying information about the image.
 
QAction * interpolateAct
 Interpolate image?
 
QAction * orientAct
 Orient image?
 
QAction * resliceAct
 Reslice mode?
 
QAction * cursorAct
 Show cursor?
 
- Protected Attributes inherited from milxQtRenderWindow
bool loaded
 Loaded Image from file?
 
bool rendered
 Scene as been setup for rendering? (by generateRender())
 
bool axesBefore
 Axes displayed?
 
bool scaleBefore
 scale displayed?
 
bool customScalarBar
 
bool logScale
 Using custom scalar bar?
 
bool useDefaultView
 Using log scalar map? More...
 
bool orientationAxes
 Display orientation (posterior etc.) axes?
 
bool contextMenuEnabled
 Display orientation (posterior etc.) axes?
 
int defaultView
 Default view for data (default is axial)
 
int currentView
 Current view for data.
 
int orientationView
 view orientation standard
 
QMenu * windowPropertiesMenu
 Context Menu.
 
QAction * backgroundAct
 Action for axes of the display.
 
QAction * axesAct
 Action for axes of the display.
 
QAction * lightingAct
 Action for two-sided lighting of the display.
 
QAction * lineAct
 Action for distance measuring display.
 
QAction * distanceAct
 Action for distance measuring display.
 
QAction * biDirectionAct
 Action for cross distance measuring display.
 
QAction * angleAct
 Action for angle measuring display.
 
QAction * planeAct
 Action for drawing planes.
 
QAction * boxAct
 Action for box drawing display.
 
QAction * sphereAct
 Action for sphere annotate display.
 
QAction * humanAct
 Show human view orientation glyph?
 
QAction * textAct
 Action for angle measuring display.
 
QAction * crosshairAct
 Action for crosshair.
 
QMenu * contourMenu
 Contour Menu.
 
QAction * contourAct
 Action for contouring surface points using Dijkstras algorithm.
 
QAction * contourPolyDataAct
 Save contour surface points as polydata.
 
QAction * contourNodePolyDataAct
 Save contour surface nodes as polydata.
 
QAction * contourInitAct
 Load contour surface points from polydata.
 
QMenu * viewMenu
 Context Menu.
 
QActionGroup * viewGroup
 Grouping for check boxes.
 
QAction * viewXY
 Change view to xy-plane (Axial)
 
QAction * viewZY
 Change view to zy-plane (Coronal)
 
QAction * viewZX
 Change view to zx-plane (Sagittal)
 
QAction * saveViewAct
 Save camera view.
 
QAction * loadViewAct
 Load camera view.
 
QAction * saveViewFileAct
 Save camera view to file.
 
QAction * loadViewFileAct
 Load camera view to file.
 
QAction * scaleAct
 Action for the scale bar of the display.
 
QMenu * colourMapMenu
 Colour map menu.
 
QActionGroup * mapGroup
 Grouping for check boxes.
 
QAction * actionDefault
 Default colours.
 
QAction * actionJet
 Jet colours.
 
QAction * actionRainbow
 Default colours.
 
QAction * actionInvRainbow
 Inv Default colours.
 
LabelledActionactionGray
 Gray colours.
 
LabelledActionactionSeismic
 Gray2 colours.
 
QAction * actionLogGray
 Logarithmic Gray colours.
 
QAction * actionNIH
 NIH colours.
 
QAction * actionNIH_FIRE
 NIH_FIRE colours.
 
QAction * actionAAL
 AAL colours.
 
QAction * actionFS
 FS colours.
 
LabelledActionactionHOT
 HOT colours.
 
QAction * actionCOOL
 COOL colours.
 
LabelledActionactionCOOLWARM
 COOL colours.
 
QAction * actionKnee
 Knee colours.
 
LabelledActionactionBone
 Spectral colours.
 
LabelledActionactionSpectral
 Spectral colours.
 
LabelledActionactionGNUPlot
 GNUPlot colours.
 
LabelledActionactionCubeHelix
 Cube Helix colours.
 
LabelledActionactionHSV
 Cube Helix colours.
 
QAction * resetAct
 Action for refreshing the display.
 
QAction * refreshAct
 Action for refreshing the display.
 
QPoint dragStartPosition
 Dragging helper variable.
 
vtkSmartPointer< vtkEventQtSlotConnect > Connector
 VTK Events to slots convertor.
 
vtkSmartPointer< vtkMatrix4x4 > transformMatrix
 Transform matrix for actor(s)
 
vtkSmartPointer< vtkRenderer > renderer
 Renderer for the data.
 
vtkSmartPointer< vtkRenderWindow > renderWindow
 Render Window used if no other set, only for deletion, access through QVTKWidget members.
 
vtkSmartPointer< vtkLookupTable > lookupTable
 Lookup table for the shapes/images, base class is used to allow references to different look up table types.
 
vtkSmartPointer< vtkCamera > camera
 camera for the view
 
vtkSmartPointer< vtkScalarBarActor > scale
 Scale for the display.
 
vtkSmartPointer< vtkScalarBarWidget > scalarBar
 Scalar Bar Widget for the display.
 
vtkSmartPointer< vtkAxesActor > axes
 Axes for the model.
 
vtkSmartPointer< vtkAxesActor > orientAxes
 Orientation (posterior etc.) axes for the orientation marker.
 
vtkSmartPointer< vtkPointPicker > dataPicker
 For determining coordinates and points from the window.
 
vtkSmartPointer< vtkContourWidget > contourWidget
 contour interaction
 
vtkSmartPointer< vtkLineWidget2 > lineWidget
 Used for drawing lines.
 
vtkSmartPointer< vtkDistanceWidget > distanceWidget
 Used for measuring distances.
 
vtkSmartPointer< vtkBiDimensionalWidget > biDirectionWidget
 Used for measuring cross distances.
 
vtkSmartPointer< vtkAngleWidget > angleWidget
 Used for measuring angles.
 
vtkSmartPointer< vtkPlaneWidget > planeWidget
 Used for drawing planes.
 
vtkSmartPointer< vtkBoxWidget2 > boxWidget
 Used for measuring angles.
 
vtkSmartPointer< vtkSphereRepresentation > sphereRep
 Sphere for widgets.
 
vtkSmartPointer< vtkSphereWidget2 > sphereWidget
 Used for measuring angles.
 
vtkSmartPointer< vtkOrientationMarkerWidget > humanGlyph
 Glyph for showing equivalent view on human.
 
QList< vtkSmartPointer< vtkTextWidget > > textWidgets
 Used for displaying movable texts in render window.
 
QList< vtkSmartPointer< vtkTextActor > > textActors
 text actors for text widgets
 
QList< ImageActorItemimageActors
 Images actors being displayed in model view.
 
QStatusBar * updateBar
 Pointer to bar, not allocated or deleted. To be passed to only.
 
QActionGroup * windowActionGroup
 used for the custom menu
 
- Protected Attributes inherited from milxQtWindow
QString name
 Name of the data.
 
QString prefix
 Prefix of the data.
 
bool verboseMode
 Verbose message output mode.
 
bool deletableOnClose
 Delete on close allowed? Allowed by default.
 
bool consoleAssigned
 Console assigned for output?
 
QMenu * contextMenu
 Context Menu.
 
QList< QAction * > actionsToAdd
 Context actions to add.
 
QList< QAction * > actionsToAppend
 Context actions to append.
 
QList< QAction * > extActionsToAdd
 Extension actions to add.
 
QList< QMenu * > menusToAdd
 Context Menu's to add.
 
QList< QMenu * > menusToAppend
 Context Menu's to append.
 
milxQtConsoleconsole
 Console for log outputs.
 

Detailed Description

This class represents the MILX Qt Image Display object using VTK.

Author
Shekhar S. Chandra, 2013

The class displays image values using OpenGL via the VTK library. itk::Image or vtkImageData can be passed to this class and a number of processes generated from the data.

The rendering is encapsulated within a QVTK widget.

Controls:

Usage Example:

milxQtImage *image = new milxQtImage;
image->setName(imgName);
image->setData(newImg);
image->generateImage();
image->show();

Definition at line 118 of file milxQtImage.h.

Constructor & Destructor Documentation

◆ milxQtImage()

milxQtImage::milxQtImage ( QWidget *  theParent = 0,
bool  contextSystem = true 
)

The standard constructor.

Initialise variables

Set strings

Connect Image Object for progress updates

Allocate critical aspects

Definition at line 55 of file milxQtImage.cpp.

◆ ~milxQtImage()

milxQtImage::~milxQtImage ( )
virtual

The standard destructor.

Smart pointers handle deletion

Definition at line 106 of file milxQtImage.cpp.

Member Function Documentation

◆ applyOrientDisplay

void milxQtImage::applyOrientDisplay ( const bool  quietly = false)
slot

Toggles applying the orientation matrix of the image.

Not to be confused with showing the orientation marker with orientDisplay() Quietly makes sure the change is not reannounced to dependent windows. Useful for multi-view

Definition at line 3562 of file milxQtImage.cpp.

◆ basicContextMenu()

QMenu * milxQtImage::basicContextMenu ( )
protected

Return the basic context menu with the milxQtImage class ordering. This is for the benefit of derived class context menus and/or extensions.

< Only exists for the duration of the context selection

Change View of Volume

Definition at line 4426 of file milxQtImage.cpp.

◆ checkerBoard

void milxQtImage::checkerBoard ( milxQtImage img,
int  numberOfSquares = 0 
)
slot

Tiles another image with the current image using alternating squares for comparison. See generateCheckerBoard() for more info.

This version accepts image objects directly.

Definition at line 2336 of file milxQtImage.cpp.

◆ contour

void milxQtImage::contour ( )
virtualslot

Draw contour interactively on images.

Disable human Glyph

Needs costs for the snapping contour

Definition at line 894 of file milxQtImage.cpp.

◆ createActions()

void milxQtImage::createActions ( )
protected

Create the actions for context menu etc.

<

Todo:
Disabled because feature is broken, fix

Definition at line 4144 of file milxQtImage.cpp.

◆ crop

void milxQtImage::crop ( QString  filename = "")
slot

Masks and crops the current image with another image.

Supports Vector images also.

Definition at line 2069 of file milxQtImage.cpp.

◆ customOperation

void milxQtImage::customOperation ( )
virtualslot

Custom operation, data dependent for viewing in unified environment.

For the image, this displays the image actor from the window selected.

< transfer model actor to current model

Keep UI responsive

Definition at line 4035 of file milxQtImage.cpp.

◆ distanceMap

void milxQtImage::distanceMap ( bool  signedDistance = true,
bool  inside = false 
)
slot

Computes the distance map of the image and displays it.

if signed distance then Signed Maurer distance maps is generated.

Definition at line 2444 of file milxQtImage.cpp.

◆ enableScale

void milxQtImage::enableScale ( QString  title = "",
const bool  quiet = false,
double  minRange = 0.0,
double  maxRange = 0.0,
int  noOfLabels = 3 
)
virtualslot

Enable scale bar display with the title provided.

Quiet Boolean is to prevent possible popups to ask user parameters.

Ask if use default scalar LUT

Definition at line 3585 of file milxQtImage.cpp.

◆ generateImage

void milxQtImage::generateImage ( const bool  quietly = false)
slot

Assigns the array data to the image and setups up the viewer.

Quietly makes sure the change is not reannounced to dependent windows. Useful for multi-view

Ensure small images are rendered correctly using Magnify class

Setup Viewer

Check for magnification

Resize Window

Definition at line 355 of file milxQtImage.cpp.

◆ GetCursorActor()

milxQtImage::GetCursorActor ( )
inline

Set the internal cursor used for display.

Returns the internal cursor actor used for display.

Get the internal cursor used for display.

Definition at line 495 of file milxQtImage.h.

◆ GetVectorImage()

milxQtImage::GetVectorImage ( )
inline

Returns the internal vector image data. Unlike the other Get*Image() members, the return value can be NULL.

User needs to check if the return value is NULL or not.

Definition at line 426 of file milxQtImage.h.

◆ highpass

void milxQtImage::highpass ( )
slot

Applies Butterworth high pass filter to image.

The VTK image result is converted to an ITK image object at the end to allow further processing.

Definition at line 3514 of file milxQtImage.cpp.

◆ histogram

void milxQtImage::histogram ( int  bins = 256,
float  belowValue = 0,
float  aboveValue = 255,
bool  plotHistogram = true 
)
slot

Computes the histogram of the image and prints info found.

ask user number of bins

< Histogram of the image

Definition at line 3811 of file milxQtImage.cpp.

◆ interpolateDisplay

void milxQtImage::interpolateDisplay ( const bool  quietly = false)
slot

Toggles interpolation.

Quietly makes sure the change is not reannounced to dependent windows. Useful for multi-view

Definition at line 3539 of file milxQtImage.cpp.

◆ isDisplayFlipped()

milxQtImage::isDisplayFlipped ( )
inline

Returns true if image was flipped internally for display purposes only.

Note: Data is never flipped unless the flip() member is called manually by the user.

Definition at line 629 of file milxQtImage.h.

◆ mask

void milxQtImage::mask ( QString  filename = "")
slot

Masks current image with another image.

Supports Vector images also.

Definition at line 1964 of file milxQtImage.cpp.

◆ polyData

void milxQtImage::polyData ( )
slot

Converts the image to polygonal data. Ideally suited for any type of image.

Note that this only emits a signal so that a class like milxQtMain can redirect it to the milxQtModel class for processing.

Definition at line 2820 of file milxQtImage.cpp.

◆ pseudoImage

void milxQtImage::pseudoImage ( )
slot

Converts the vector image to a pseudo-image, where each vector component is 'coloured'.

Note that this only emits a signal so that a class like milxQtMain can redirect it to the milxQtModel class for processing.

Definition at line 2864 of file milxQtImage.cpp.

◆ resize

void milxQtImage::resize ( double  outputSpacing = 0.0)
slot

Resizes image to spacing given. Currently only does isotropic.

Todo:
Extend to support anisotropic sampling

Definition at line 3162 of file milxQtImage.cpp.

◆ scaleDisplay

void milxQtImage::scaleDisplay ( const bool  forceDisplay = false)
virtualslot

Toggles the scale bar display.

forceDisplay Boolean is to overide possible previous settings and display bar.

Definition at line 3705 of file milxQtImage.cpp.

◆ setActualNumberOfDimensions()

milxQtImage::setActualNumberOfDimensions ( const size_t  dims)
inline

Sets the actual number of dimensions of the image.

All images loaded as 3D images or 3D vector images, this shows actual dimension thats maintained in file.

Definition at line 667 of file milxQtImage.h.

◆ setData() [1/6]

void milxQtImage::setData ( QPointer< milxQtImage newImg,
const bool  forceDeepCopy = false 
)

Assigns the milxQtImage data to current image. You will need to call generate image after this.

Image provided is generally deep copied except for vector images. Use forceDeepCopy to always deep copy regardless of image type.

Definition at line 111 of file milxQtImage.cpp.

◆ setData() [2/6]

void milxQtImage::setData ( charImageType::Pointer  newImg,
const bool  flipY = true 
)

Assigns the ITK image data to image. You will need to call generate image after this.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 125 of file milxQtImage.cpp.

◆ setData() [3/6]

void milxQtImage::setData ( intImageType::Pointer  newImg,
const bool  flipY = true 
)

Assigns the ITK image data to image. You will need to call generate image after this.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 139 of file milxQtImage.cpp.

◆ setData() [4/6]

void milxQtImage::setData ( rgbImageType::Pointer  newImg,
const bool  flipY = true 
)

Assigns the ITK image data to image. You will need to call generate image after this.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 153 of file milxQtImage.cpp.

◆ setData() [5/6]

void milxQtImage::setData ( floatImageType::Pointer  newImg,
const bool  flipY = true 
)

Assigns the ITK image data to image. You will need to call generate image after this.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 167 of file milxQtImage.cpp.

◆ setData() [6/6]

void milxQtImage::setData ( vectorImageType::Pointer  newImg,
const bool  flipY = true,
const bool  deepCopy = false 
)

Assigns the ITK image data to image. You will need to call generate image after this.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display. Note also that unlike the other setData() members, this member does not copy the data since vector image tend to be very large unless deepCopy flag is set.

Definition at line 181 of file milxQtImage.cpp.

◆ setDefaultOrientation

void milxQtImage::setDefaultOrientation ( int  orientMode)
slot

Change orientation mode to one of the supported standards. Default: Radiological.

0-Radiological: Feet first view 1-Neurological: Head first view

Definition at line 3575 of file milxQtImage.cpp.

◆ setDisplayData() [1/6]

void milxQtImage::setDisplayData ( QPointer< milxQtImage newImg)

Shares the milxQtImage data to current image. You will need to call generate image after this.

Useful when attempting to share image data just for display etc.

Definition at line 239 of file milxQtImage.cpp.

◆ setDisplayData() [2/6]

void milxQtImage::setDisplayData ( charImageType::Pointer  newImg,
const bool  flipY = true 
)

Shares the ITK image data to image. You will need to call generate image after this.

Useful when attempting to share image data just for display etc.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 253 of file milxQtImage.cpp.

◆ setDisplayData() [3/6]

void milxQtImage::setDisplayData ( intImageType::Pointer  newImg,
const bool  flipY = true 
)

Shares the ITK image data to image. You will need to call generate image after this.

Useful when attempting to share image data just for display etc.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 267 of file milxQtImage.cpp.

◆ setDisplayData() [4/6]

void milxQtImage::setDisplayData ( rgbImageType::Pointer  newImg,
const bool  flipY = true 
)

Shares the ITK image data to image. You will need to call generate image after this.

Useful when attempting to share image data just for display etc.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 281 of file milxQtImage.cpp.

◆ setDisplayData() [5/6]

void milxQtImage::setDisplayData ( floatImageType::Pointer  newImg,
const bool  flipY = true 
)

Shares the ITK image data to image. You will need to call generate image after this.

Useful when attempting to share image data just for display etc.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 295 of file milxQtImage.cpp.

◆ setDisplayData() [6/6]

void milxQtImage::setDisplayData ( vectorImageType::Pointer  newImg,
const bool  flipY = true 
)

Shares the ITK image data to image. You will need to call generate image after this.

Useful when attempting to share image data just for display etc.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 309 of file milxQtImage.cpp.

◆ SetInput() [1/5]

milxQtImage::SetInput ( charImageType::Pointer  newImg,
const bool  flipY = true 
)
inline

ITK interface function: Assigns the image data internally. Same as setData() function.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 167 of file milxQtImage.h.

◆ SetInput() [2/5]

milxQtImage::SetInput ( intImageType::Pointer  newImg,
const bool  flipY = true 
)
inline

ITK interface function: Assigns the image data internally. Same as setData() function.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 178 of file milxQtImage.h.

◆ SetInput() [3/5]

milxQtImage::SetInput ( rgbImageType::Pointer  newImg,
const bool  flipY = true 
)
inline

ITK interface function: Assigns the image data internally. Same as setData() function.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 189 of file milxQtImage.h.

◆ SetInput() [4/5]

milxQtImage::SetInput ( floatImageType::Pointer  newImg,
const bool  flipY = true 
)
inline

ITK interface function: Assigns the image data internally. Same as setData() function.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 200 of file milxQtImage.h.

◆ SetInput() [5/5]

milxQtImage::SetInput ( vectorImageType::Pointer  newImg,
const bool  flipY = true 
)
inline

ITK interface function: Assigns the image data internally. Same as setData() function.

ITK has different orientation for images, so the flipY flag (not done by default) can be used to flip the image appropriately. Note that the data itself is not flipped, only the display.

Definition at line 211 of file milxQtImage.h.

◆ setSlice

void milxQtImage::setSlice ( int  slice)
slot

Sets the slice of the volume to slice value given.

Bounds is checked.

Definition at line 314 of file milxQtImage.cpp.

◆ SetTransform()

void milxQtImage::SetTransform ( vtkSmartPointer< vtkTransform >  transform)

Sets the transform for the image that will be generated. Must pass a vtkTransform objects, which is easy to use.

Note that this does not change the internal ITK data inside.

Transform this model

Definition at line 325 of file milxQtImage.cpp.

◆ setupEvents()

void milxQtImage::setupEvents ( )
protected

Executes common events setup and connections code for image viewing.

This includes keys pressed for window.

Definition at line 1082 of file milxQtImage.cpp.

◆ streamLines

void milxQtImage::streamLines ( )
slot

Converts the vector image to a series of stream lines which all start at the current slice being viewed.

Note that this only emits a signal so that a class like milxQtMain can redirect it to the milxQtModel class for processing.

Extract the viewed slice

Definition at line 2900 of file milxQtImage.cpp.

◆ surface

void milxQtImage::surface ( const float  value = numeric_limits<float>::max())
slot

Converts the image to a surface using the Marching Cubes algorithm. Ideally suited for binary images.

Note that this only emits a signal so that a class like milxQtMain can redirect it to the milxQtModel class for processing.

Definition at line 2813 of file milxQtImage.cpp.

◆ trackView()

void milxQtImage::trackView ( milxQtImage windowToTrack,
ViewType  viewTo 
)

Enables tracking of the view (axial etc.) to imgToTrack provided.

View tracking is linking the position of cursors in other milxQtImage objects to this one. This is useful for multi-view display where each window tracks different views (axial etc.) of the same data

Definition at line 641 of file milxQtImage.cpp.

◆ transform

void milxQtImage::transform ( QString  filename = "",
QString  refImgFilename = "",
bool  inverse = false 
)
slot

Transforms current image given ITK transform file.

You need to provide not only the ITK transform file but the image to resample the current image to.

< Use ITK transform function

Definition at line 2195 of file milxQtImage.cpp.

◆ updateCoords

void milxQtImage::updateCoords ( vtkObject *  obj)
virtualslot

Picks the coordinates and pixel value from the current mouse position in the window.

Get interactor

Todo:
Why is update of coordinates for RGB images become really slow?

Get event position Code initial by Mark Wyszomierski 2003-2007 @ devsample Modified and simplified by Shekhar Chandra Do the pick. It will return a non-zero value if we intersected the image.

Get the pixel in real space

Compute the actual coordinate for pixel access

We have to handle different number of scalar components.

Extract first scalar component only and build message

Extract all three scalar components and build message

Extract all three scalar components and build message

Write message to status bar

Definition at line 670 of file milxQtImage.cpp.

◆ updateData()

void milxQtImage::updateData ( const bool  orient = true)
protected

Ensures the internal visualisation data is up to date.

ITK to VTK image (unsigned char)

ITK to VTK image (RGB)

ITK to VTK image (RGB)

ITK to VTK image (Float)

Definition at line 976 of file milxQtImage.cpp.

◆ updateTrackedView

void milxQtImage::updateTrackedView ( vtkObject *  obj)
slot

Updates the display of the slice in the window according to view tracking.

Get the pixel in real space

Compute the actual coordinate for pixel access

Definition at line 837 of file milxQtImage.cpp.

◆ vectorField

void milxQtImage::vectorField ( int  subsampleFactor = 0,
float  scaling = 0.0 
)
slot

Converts the vector image to a vector field.

Note that this only emits a signal so that a class like milxQtMain can redirect it to the milxQtModel class for processing.

Definition at line 2874 of file milxQtImage.cpp.

◆ volumeRendering

void milxQtImage::volumeRendering ( )
slot

Display current image as volume rendering.

Pass on the data so that plot class can be used without including plot class. Volume rendering is generated in main class or caller.

Definition at line 1430 of file milxQtImage.cpp.

Member Data Documentation

◆ meanValue

double milxQtImage::meanValue
protected

Other Variables.

Average data value currently held

Definition at line 1419 of file milxQtImage.h.


The documentation for this class was generated from the following files: