The new and improved Richardson–Lucy deconvolution with OpenCL and FFTW - added fft's to do integrals on CPU, and OpenCL to do point-wise arithmetic on GPU - error handling, if exceptions are encountered, functions will clean up after themselves, dealloc all buffers, etc etc, which also allows usage in larger programs without crashing them - larger programs need only #include "deconvolute.h" and call deconvolute_image(input, psf, output, number of iterations, number of threads to use for fftw) - probably still has many bugs though, but so far runs smoothly main.c is example usage of deconvolute_image() == Usage Notes == - input image must be 16-bit RGB TIFF - psf image must be 8-bit RGB TIFF, due to GIMP limitations, i.e. you open the input image in GIMP, make a white psf (either by tracing one with pencil tool or taking image chunk), make background black, export TIFF (or you can modify source code to allow 16-bit psf if not using GIMP or if you already have a psf) - output image will be 16-bit RGB TIFF - due to memory limitations, you may need to scale your image smaller to avoid running out of memory - all files are needed except the Makefile (you can write your own) and main.c (an example usage of deconvolute_image) - either #include "deconvolute.h" or declare extern int deconvolute_image(char *, char *, char *, int, int); == Prerequisites == - libc (-lc) - OpenCL (-lOpenCL) - libtiff (-ltiff) - libfftw3 float (instead of double) and multi-thread enabled version (-lfftw3f_threads -lfftw3f -lm -lpthread)