![](documentation/logo.png)
# µDIC [![CircleCI](https://circleci.com/gh/PolymerGuy/myDIC/tree/dev.svg?style=shield&circle-token=a243539092cfaffdffd7a59765c8b25827e55ab0)](https://circleci.com/gh/PolymerGuy/myDIC/tree/dev)



A python toolkit for Digital Image Correlation (DIC)
## Overview
This package provides a "batteries included" toolkit for 2D digital image correlation. The intended use in in the field of material research, for non-contact strain measurements.
The implementation is based on B-splines, providing a very flexible framework where various degrees of continuity can be enforced etc.

Typical usage is demonstrated in the provided examples


This toolkit includes the following:
* Image reader tools
* Virtual lab
    * Speckle image generators
    * Image deformation tools
    * Noise injection
    * Image down-sampling
* B-spline finite elements
    * Arbitrary polynomial order
    * Knot vectors can be manipulated
* Meshing tools:
    * A light weight GUI for structured meshing
* Image correlation routines:
    * Non linear least squares solver
* Post processor
    * Calculates most popular strain measures
    * Light weight visualization
* Logging
 
 


## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
### Prerequisites
This toolkit is tested on Python 2.7x an 3.7 and need all dependencies listen in requirements.txt

### Installing

#### Installing by a package manager:


#### Installing by cloning the repos:
Start to clone this repo to your preferred location:
```
$ git init
$ git clone https://github.com/PolymerGuy/muDIC.git
```


We recommend that you always use virtual environments, either by virtualenv or by Conda env

Virtual env:
```
$ virtualenv myproject
$ source /myproject/bin/activate
$ pip install -r requirements.txt
```

Conda env:
```
$ conda create -n envname python=2.7
$ source activate envname
$ conda install --yes --file requirements.txt
```

You can now run an example:
```
$ python path_to_muDIC/Examples/phantomImages.py
```

## Running the tests

The tests should always be launched to check your installation.
These tests are integration and unit tests:


```
$ unittests /tests
```

## Documentation
Documentation is hosted by: LINK TO READ THE DOCS


## Our motivation
The motivation for this work was the need for a transparent code which could be modified and extended easily, without digging deep into C or C++ source code. The implementation is pure python with the exception of third-party packages such as Scipy, Numy etc.


## Contributing
Clone the repository, add your changes, add new tests and you are ready for a pull request

## Authors
* **Sindre Olufsen** - *Implementation* - [PolymerGuy](https://github.com/polymerguy)
* **Marius Endre Andersen** - *Wrote the Matlab code which was the starting point for this project*

## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

## Citing this project
This project is described in the following paper and citation is highly appreciated

[THE AWESOME PAPER TO BE PUBLISHED]








