Wat is Unshake?
Unshake is een automatische "blinde" uiteenrafelaar (deconvolver). Euhh?

De meeste beeldprocessoren bieden vooraf gedefinieerde filters die na veel gebruik nuttig zijn bevonden. Ze brengen verborgen details naar voren door het benadrukken van wijzigingen (zoals randen) in foto's. Programma's die via de ontrafelingstechnieken werken wijken hier van af en proberen de oorspronkelijke scène te herstellen zoals deze eruit zou hebben gezien. Het probleem is nu dat precies aangegeven moet worden hoe de afbeelding zo wazig is geworden (als voorbeeld; bij een slecht scherpgestelde camera moet niet alleen aangegeven worden hoeveel de scherpstelling afwijkt, maar ook de sluitertijd en het aantal lamellen van de sluiter.). Een programma dat automatisch uiteenrafelt probeert zelf in te schatten hoe de foto in de eerste plaats is vervaagd, vervolgens dan af te leiden hoe de oorspronkelijke scène eruit zou hebben gezien. Dit is een ingewikkeld proces waarbij tot wel honderden berekeningen automatisch moeten worden uitgevoerd.

Originele foto van een Hazelworm Originele foto van een Hazelworm
  Voorbeeld van een bewogen foto met een Hazelworm.  
Resultaat na behandeling met Unshake Resultaat na behandeling met Unshake
  Voorbeeld na behandeling met Unshake.  


Unshake kan meestal de resolutie van een wazig beeld verdubbelen tot verdrievoudigen. Unshake is nog steeds het enige programma dat automatisch uiteenrafelt en kan werken met normale foto's. Het programma is ontworpen om gebruikt te worden door "niet-specialisten". Unshake is in staat om een slechte scherpstelling en lichte trillingen van de camera in foto's van mensen of landschappen te herstellen.

Unshake op een eComStation machine met Java 1.4.2_05 Systeemvereisten
  • InnoTek OS/2 Kit for Java 1.4.2_05 (Een op Sun Java gebaseerd platform)
  • 1Gb geïnstalleerd RAM-geheugen waarvan minimaal ±600Mb vrij beschikbaar (minimaal ±512Mb voor de foto + Java + Unshake)
  • 1Mb vrije ruimte op harde schijf voor Unshake
  • Onscherpe of bewogen foto's met een maximale afmeting van 2048 x 2048 pixels (limiet van het gebruikte Fast Fourier Transform algoritme)

Werk zoveel mogelijk met veelvouden van 64, 128, 256, 512 enz. Een afbeelding met een zijde met 257 pixels kost heel veel meer tijd om te verwerken dan een afbeelding met een zijde met 256 pixels. De afbeelding met in dit voorbeeld een zijde met 257 pixels wordt behandeld alsof de zijde 512 pixels telt. Dit is een eigenschap van het gebruikte Fast Fourier Transform algoritme.

Installeren van Unshake
Download Unshake15r1b.zip. Maak een map(directory) "Unshake". Kopieer de inhoud van het zip-bestand naar de nieuwe map "Unshake". Maak een nieuw programma object of kopieer deze uit onderstaand bestand. Geef pad en de bestandsnaam op: "[station: Unshake]\Unshake\Unshake.cmd". In het tabblad Sessie de selectievakjes "OS/2 venster", "Starten als pictogram" en "Venster sluiten bij einde programma" aanvinken. In het tabblad Algemeen kan bij naam "Unshake" worden opgegeven.

Unshake maakt gebruik van Sun's JPEG algoritmen om bestanden op te slaan. Dit is geen standaard Java en zit dus ook niet in Open JDK. Java versie 1.6 werkt daardoor minder goed met Unshake, het programma is beduidend langzamer en resultaten kunnen door het ontbreken van de bewuste bibliotheek niet worden opgeslagen.

Het te gebruiken cmd bestand
Ik heb een Unshake.cmd bestand met de volgende inhoud;
@echo off
rem Java 1.4.2
SET JAVA_HOME=[station: java]\JAVA142
set BEGINLIBPATH=[station: java]\JAVA142\bin
set path=[station: java]\JAVA142\bin

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

[station: Unshake]
cd [station: Unshake]\Unshake
java -Xmx384m -jar Unshake.jar 2>unshakebugs.txt
Ik gebruik 2 aparte partities, een voor Java en een voor Unshake zelf met de door het programma aangemaakte bestanden. De in het cmd bestand gebruikte verwijzingen;

  • [station: java] = station met Java
  • [station: Unshake] = station met Unshake

moeten dus vervangen worden door echte schijfletters. Bewaar het bestand en geef het de naam Unshake.cmd of gebruik, al dan niet aangepast, het command bestand uit onderstaande distributie. Dit bestand wordt gekopieerd naar de Unshake map(directory). Verder kunnen paden anders zijn, pas dit naar behoefte aan.
De opgave "-Xmx384m" geeft aan hoeveel geheugen Java mag gebruiken. De "-Xmx384m" is de minimum specificatie om met afbeeldingen van 2048 x 2048 pixels te kunnen werken. Met een opgave van "-Xmx448m" verloopt de verwerking sneller. De opgave "2>unshakebugs.txt" zorgt ervoor dat alle probleem meldingen (bugs) bewaard worden in het bestand "unshakebugs.txt". De 2 in "2>" is dus geen typefout! Eveneens is zichtbaar de uitgeremde Java 1.6 instellingen.

Download
In het bestand zit bovenstaand cmd bestand (alle schijfletters staan op C:) en een OS/2 Unshake icoontje: Unshake-eCS.zip.

revisie 29 december 2012