0
I Use This!
Activity Not Available

Project Summary

The Discrete Geometry 3D Viewer (DGV) is a simple and light-weight Scientific Visualisation tool using an intuitive Graphical User Interface (GUI). It uses OpenGL to display line, surface and volume plots from a variety of data formats:

PNG, TIFF, PNM (PGM etc.), BMP and JPEG images DICOM images VTK XML Image (VTI) format Comma Seperated Values (CSV) files Image Stacks (of the form .pgm.# or .png.# only) GNUPlot Format (2-tuple) Files Blitz++ Array Format Files

For Users: DGV is intended to allow the user to see their data quickily and efficiently, while enabling some minor filtering and analysis. Images, Line plots, Surface and Volume plots are all supported. It is build on the following libraries:

Trolltech Qt Open Source (Qt 4.4.x) - An extensive, cross-platform framework/GUI library. Kitware's Visualisation Toolkit (VTK 5.x) - Scientific Visualisation Library based on OpenGL. Qt Widgets for Technical Applications (Qwt 5.1.x) - Special technical widgets for Qt including Line plots. Grassroots DICOM Library (GDCM 2.x) - Specialist, Multi-format DICOM reading/writing library. Blitz++ (Blitz CVS) Numerical Array Library - Very fast, templated Array package alllowing upto 11D Arrays, functions and slicing operations. Fastest Fourier Transform in the West Library (FFTW 3.x) - Very mature and fast FFT library. DGV is designed so that one does NOT need to know 3D graphics or VTK to get visualisations. Upon loading of the data, one can apply the following operations:

Fast Fourier Transforms (FFTs) of Complex and real data. View complex valued data View raw data of the files above through the use of tables Edit the raw data, thus allowing some filtering ability Surface plots of the data or results of transforms Volume plots via VTI files Animation of volume slices (surfaces) using surface plots 1D FFTs of data in tables 1D Line plots of raw data Animations of 1D plots of raw data Images are viewed in a 3D scene allowing gamma control via the mouse. Zooming, rotation and translation of images. Volume and Surface plots are in full OpenGL 3D graphics. Arithmetic with Images as well as functions like exp and log. Histogram of images of arbitrary data ranges. Convert images to and from the above formats. Load very large files via 64-bit support. Memory usage is dependent only on the data being viewed hence allowing user control. Save complex valued data (in native format) for loading and display. For Developers:

The API provides a simple interface to load common formats, and to visualise Blitz++ Arrays without having to know the VTK, GDCM and FFTW libraries as it wraps the main functionalities for Transforms, Surface and Volume plots. The class naming convention is "DGV" prefixed and "VTK" suffixed if the class uses the VTK library. An example of a Gaussian surface plot is the following with Blitz ++ Arrays:

00001 ///Code for generating a 2D Gaussian Surface and its plot
00002 #include
00003
00004 #include "DGVSurfacePlotVTK.h"
00005 ///Use the Surface Plot class utilising VTK
00006 const int Size = 256;
00007
00008 int main(int argc, char *argv[])
00009 {
00010 QApplication app(argc,argv);
00011 DGVSurfacePlotVTK MainWindow;
00012 Array gaussian(Size,Size);
00013 firstIndex x; //Used to run through first dimension
00014 secondIndex y; //Used to run through second dimension
00015
00016 double amplitude = 100.0, stdDev_x = Size/2, stdDev_y = Size/2, x0 = Size/2, y0 = Size/2;
00017 double variance_x = stdDev_x*stdDev_x, variance_y = stdDev_y*stdDev_y;
00018 gaussian = amplitude*exp( -( (x-x0)*(x-x0)/variance_x + (y-y0)*(y-y0)/variance_y ) );
00019
00020 MainWindow.setData(gaussian);
00021 MainWindow.generatePlot();
00022 MainWindow.generateAxes();
00023 MainWindow.show();
00024
00025 return app.exec();
00026 }The line "gaussian = amplitude*exp( -( (x-x0) (x-x0)/variance_x + (y-y0) (y-y0)/variance_y ) );" defines the gaussian "exp( -(x*x + y*y) )" with the parameters given in the line above. The surface plot is done from the sebsequent four lines. All other code is standard Qt application code which can be referenced from the Qt documentation.

Dev Blog News

Tags

dgv discrete fourier geometry histogram physics qt4 quantum radon scientific surface visualisation visualization volume vtk

In a Nutshell, discrete-geometry-viewer...

 No code available to analyze

Open Hub computes statistics on FOSS projects by examining source code and commit history in source code management systems. This project has no code locations, and so Open Hub cannot perform this analysis

Is this project's source code hosted in a publicly available repository? Do you know the URL? If you do, click the button below and tell us so that Open Hub can generate statistics! It's fast and easy - try it and see!

Add a code location

GNU General Public License v3.0 or later
Permitted

Commercial Use

Modify

Distribute

Place Warranty

Use Patent Claims

Forbidden

Sub-License

Hold Liable

Required

Distribute Original

Disclose Source

Include Copyright

State Changes

Include License

Include Install Instructions

These details are provided for information only. No information here is legal advice and should not be used as such.

This Project has No vulnerabilities Reported Against it

Did You Know...

  • ...
    use of OSS increased in 65% of companies in 2016
  • ...
    data presented on the Open Hub is available through our API
  • ...
    55% of companies leverage OSS for production infrastructure
  • ...
    you can embed statistics from Open Hub on your site

 No code available to analyze

Open Hub computes statistics on FOSS projects by examining source code and commit history in source code management systems. This project has no code locations, and so Open Hub cannot perform this analysis

Is this project's source code hosted in a publicly available repository? Do you know the URL? If you do, click the button below and tell us so that Open Hub can generate statistics! It's fast and easy - try it and see!

Add a code location

Community Rating

Be the first to rate this project
Click to add your rating
  
Review this Project!