At the end of 2014, I was shocked at the progress of blind deblurring algorithm, so I studied the recent researches in this field.
I read many papers and made a system based on this paper: “Blind deconvolution using alternating maximum a posteriori estimation with heavy-tailed priors”.
The source code of the system I made is uploaded on my GitHub repository, and also I provide a vagrant-box that contains both binary and source code, so you can easily try it.
The most important remaining work is to reduce ringing artifacts. Honestly speaking, I had been trying it until this summer when I had time, but I could not do it. I welcome the challengers of this task :-)
In addition, the license of this system is GPL2.
Description
This system runs on only Linux, and requires the following libraries:
This system is composed of a deblurring engine and a GUI sub-system.
The engine is provided as a static library under the lib
subdirectory,
and the source code of it is also provided under the libsrc
subdirectory.
If you recreate the static library, you have to execute make
command on the libsrc subdirectory.
Vagrant box
Requirement
- Vagrant
- VirtualBox
- vnc client
How to use
[1] Create Vagrantfile
Create a Vargantfile as shown below:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "s-hironobu/centos7-blind-deblur"
config.vm.network "private_network", ip: "192.168.33.95"
config.vm.network :forwarded_port, guest: 5901, host: 5901
end
[2] Start vm box
Run vagrant up
.
$ vagrant up
[3] Access VM via vnc client
If you use OSX, run the following command:
$ open vnc://localhost:5901
Password is vagrant
.
If you use other OS, run your vnc-client.
[4] Open terminal and Run
Open a terminal and change directory to blind-deblurring
.
Then, run blindDeblur
.
[vagrant@localhost ~]$ cd blind-deblurring
[vagrant@localhost blind-deblurring]$ ./blindDeblur
Push Deblur
button, and then adjust the sharpness of the deblurred image.
Screenshot
Original blurred image
deblurring…
Deblurred image