Giter Site home page Giter Site logo

jos_wavelets's Introduction

JOS_wavelets

This library written in C contains functions for computing wavelet coefficients in dimension 1, dimension 2 and dimension 3:

  • wavelet_transform1D()
  • wavelet_transform2D()
  • wavelet_transform3D()

and the corresponding inverse transforms

  • invwavelet_transform1D()
  • invwavelet_transform2D()
  • invwavelet_transform3D()

and also the corresponding adjoint transforms

  • adjointwavelet_transform1D()
  • adjointwavelet_transform2D()
  • adjointwavelet_transform3D()

and the corresponding inverse transforms

  • adjointinvwavelet_transform1D()
  • adjointinvwavelet_transform2D()
  • adjointinvwavelet_transform3D()

there declarations is given in the header wavelet_transform.h.

Building

The build process is governed by CMake.

Unix:

Start by going the the directory where you want your binaries and run

ccmake PATH_TO_SOURCE
make

To test the code run

./libwaveletstest/libwaveletstest

Windows

To build on windows, open the CMake gui, run configure-generate. Then open the project with Visual Studio.

Build flags

The build can be controlled by changing build flags in the CMake file.

Precision

All input vectors, coefficient vector and output vectors are assumed to be of the type FLOAT. Here FLOAT is defined to be a 32 bit float unless the macro HIGH_PRECISION is defined and in that case FLOAT is define as a 64 bit double.

The macro HIGH_PRECISION will be defined at the compilations by the CMake variable HIGH_PRECISION

Image data and Volume data as in DICOM are often written as arrays of unsigned 16 bits integers, but most often only 12 of those 16 bits are used. In order to use the wavelet transforms those arrays has to be converted by the user to arrays of type FLOATS.

After the inverse wavelet transform a similar conversion from FLOATs to unsigned integers may be done.

Note that if you want to run compile the test after changing the precision you have to first to rebuild the library.

Optimization and debugging

When building on UNIX type system (with e.g. make), the build mode is controlled by the CMake flags OPTIMIZATION and DEBUGGING.

Usage notes

IN-GOING ARRAYS ARE WRITTEN OVER

All wavelet_transforms use the input array to store intermediate results in the calculations. If you want to keep the input vector results you have to make your own copy of the input vector.

The same holds for the in-going wavelet coefficient vector when running the inverse wavelet transforms.

License

The source code is licensed under the GPL version 3. See the LICENSE file.

jos_wavelets's People

Contributors

adler-j avatar jostromb avatar kohr-h avatar niinimaki avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.