Skip to content

permfl/dictlearn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Documentation Status

Supported Python Versions

Supported python versions are: 2.7, 3.5 and 3.6. It should also work with python 3.7, however that is not tested

Install Linux

$ pip install -r requirements.txt
$ python setup.py install

Install Mac

This package depends in libomp which is not installed by default. If you see the following error, libomp has to be installed.

$ python setup.py install
Installing dictlearn...
running develop
running egg_info
writing dictlearn.egg-info/PKG-INFO
writing dependency_links to dictlearn.egg-info/dependency_links.txt
writing requirements to dictlearn.egg-info/requires.txt
writing top-level names to dictlearn.egg-info/top_level.txt
reading manifest file 'dictlearn.egg-info/SOURCES.txt'
writing manifest file 'dictlearn.egg-info/SOURCES.txt'
running build_ext
building 'dictlearn._dictlearn._dictlearn' extension
.
.
.
clang: error: unsupported option '-fopenmp'
error: command 'gcc' failed with exit status 1

Install libomp with homebrew:

$ brew install libomp

and run python setup.py install again.

Install Windows

Using anaconda: $ conda install --file requirements.txt

Building the cython extensions are probably easier using anaconda.

If cython build crashes, install Visual Studio Build Tools. For python 3 you need:

http://landinghub.visualstudio.com/visual-cpp-build-tools

and for python 2

https://www.microsoft.com/en-us/download/details.aspx?id=44266

VTK and ITK

If you need to read/write VTK files you have to install VTK. Everything that requires VTK or ITK are located in dictlearn/vtk.py and scripts/. The rest of the code can run without having VTK or ITK installed.

Denoise (Gray scale images only)

Simple denoising using 20 training iterations with 8x8 image patches.

import matplotlib.pyplot as plt
import dictlearn as dl

denoise = dl.Denoise('noisy_image.png')
denoised_image = denoise.train().denoise()
plt.imshow(denoised_image)
plt.show()

Inpainting

import matplotlib.pyplot as plt
import dictlearn as dl

inpainter = dl.Inpaint('image.png', 'mask.png')
inpainted_image = inpainter.train().inpaint()

plt.subplot(121)
plt.imshow(inpainter.patches.image)
plt.title('Original')

plt.subplot(122)
plt.imshow(inpainted_image)
plt.title('Inpainted')

plt.show()

Tests

Run tests with

$ pytest tests

from root directory