What is Unshake?
Unshake is an automatic "blind" deconvolver. Uhh?

Most image processors offer pre-defined filters which have been found useful after a lot of use. They bring out hidden detail by emphasising changes (like edges) in pictures. Distinct from this, deconvolvers try to recover what the original scene looked like, but they have the problem that one needs to specify exactly how the picture was blurred in the first place (for example, if the camera was poorly focused, one would ideally specify not just how bad the focus was, but how fast the shutter moved at each phase of its cycle, and how many leaves the shutter had). An automatic deconvolver attempts to estimate itself how the picture was blurred in the first place, then to deduce what the original scene would have looked like. This is a very difficult task, involving automatically setting dozens or hundreds of controls.

Original photo of a slow-worm Original photo of a slow-worm
  Example of a moving picture with a slow-worm.  
Result after treatment with Unshake Result after treatment with Unshake
  Example after treatment with Unshake.  

Unshake can only usually double or treble the resolution of a blurred picture. Nonetheless, Unshake is still the only automatic deconvolver available which works on normal domestic photographs, the only free automatic deconvolver designed for non-specialists to use, and the only automatic deconvolver which is capable of handling poor focus and mild camera shake in single photographs of people or scenery.

Unshake on an eComStation machine with Java 1.4.2_05 System requirements
  • InnoTek OS/2 Kit for Java 1.4.2_05 (A Sun Java based platform)
  • 1Gb RAM installed which at least ±600 Mb freely available (minimum ±512Mb for the photo + Java + Unshake)
  • 1Mb free hard disk space for Unshake
  • Blurred or shaky photos with a maximum size of 2048 x 2048 pixels (limit of the used Fast Fourier Transform algorithm)

Work as much as possible with multiples of 64, 128, 256, 512 etc. An image with a side of 257 pixels takes a lot more time to process than an image with a side of 256 pixels. In this example, the image with one side of 257 pixels is treated as if the side counts 512 pixels. This is a characteristic of the used Fast Fourier Transform algorithm.

Installing Unshake
Download Unshake15r1b.zip. Create a folder (directory) "Unshake". Open with a file manager, such as FC/2, the zip file and copy the contents to the new folder "Unshake". Create a new program object or copy it from the file below. Specify the path and file name: "[drive: Unshake]\Unshake\Unshake.cmd". In the tabpage Session check the boxes "OS/2 window", "Running as an icon" and "Close Window to end program". In the tabpage General you can enter the name "Unshake".

Unshake uses Sun's JPEG algorithms to save files. This is not standard Java and is therefore not in Open JDK. Java version 1.6 works less well with Unshake, the program is much slower and results can not be saved due to the absence of the conscious library.

The used cmd file
I have created an Unshake.cmd file with the following contents;
@echo off
rem Java 1.4.2
SET JAVA_HOME=[drive: java]\JAVA142
set BEGINLIBPATH=[drive: java]\JAVA142\bin
set path=[drive: java]\JAVA142\bin

rem Java 1.6.0
rem set CLASSPATH= 
rem set PATH=[drive: java]\JAVA160\bin
rem set BEGINLIBPATH=[drive: java]\JAVA160\bin

[drive: Unshake]
cd [drive: Unshake]\Unshake
java -Xmx384m -jar Unshake.jar 2>unshakebugs.txt
I use 2 separate folders (directories), one for Java and one for Unshake with the files created by this program. The references used in the cmd file;

  • [drive: java] = drive with Java
  • [drive: Unshake] = drive with Unshake

should be replaced with real drive letters. Save the file and name it Unshake.cmd or use the commandfile from the distribution. This file is copied to the Unshake folder (directory). Furthermore, different paths?, adjust according to your needs.
The "-Xmx384m" indicates how much memory Java can use. The "-Xmx384m" is the minimum specification for images of 2048 x 2048 pixels. With "-Xmx448m" processing is speeding up. The addition "2>unshakebugs.txt" ensures that errors are saved in the file "unshakebugs.txt". The 2 in "2>" is not a typo! Also visible the inhibited Java 1.6 settings.

In the file you can find the above command file (all drive letters are on set to C:) and an OS/2 Unshake icon: Unshake-eCS.zip.

revision December 29, 2012