4.2. Billedredigering

I denne sektion nævnes en række programmer, hvis hovedformål er egentlig redigering af billeder.

Ønsker du et bitmap-baseret tegneprogram uden mange smarte funktioner, er xpaint nemt at gå til, men det kan ikke ret meget.

Desuden kan du have glæde af ImageMagick, der kan vise og konvertere mellem et utal af grafikformater. Specielt er det nemt og effektivt til at konvertere grafik via kommandolinje-ordrer (f.eks. convert fil.jpg fil.png).

4.2.1. Lave skærmskud

Det er ofte nødvendigt at lave skærmbilleder af programmer til f.eks. dokumentation. Mange programmer kan dette. F.eks. har ee en nem "grab"-funktion til det. Gimp har en tilsvarende funktion i menuen "Filer|Indhent|Skærmbillede". Til KDE 2 er programmet KSnapshot ksnapshot en meget enkel mulighed for at hente enten et vindue eller hele skærmen. Det skal også nævnes at du ofte skal klikke på baggrunden for at få hele skærmen gemt.

4.2.2. The GIMP

Til Linux findes et fremragende grafik-program the GIMP (the GNU Image Manipulation Program), der har stort set den samme funktionalitet som Photoshop. GIMP har brushes, lag, strukturerede underlag og meget andet. Med Gimp følger en masse ekstra moduler til at lave forskellige visuelle effekter (du kan endda programmere dine egne moduler), og GIMP har et indbygget script-sprog der kan bruges til f.eks. automatisk generering af flammende knapper til web-sider. Udviklingen inden for GIMP har været og er stadig stor, så i dag er the GIMP på fuldt professionelt niveau – og ganske gratis.

Figur 4-4. The GIMP

I lighed med andre komplicerede programmer i professionel kvalitet kan GIMP være svær at komme helt ind på livet af. Heldigvis findes der en glimrende brugervejledning med gennemgang af programmets funktioner og mange eksempler på hvordan diverse grafiske effekter kan laves. Den kan ses på manual.gimp.org, hvorfra den også kan hentes i flere forskellige formater. Det er en ganske omfattende sag, PDF-versionen fylder således hele 591 sider.

Vi kan tage et par eksempler på brug af GIMP.

Det første er nok at få lidt hjælp til at komme i gang. Som det ses på Figur 4-5 kan du i menuen "Ekstra->Web-Browser" få startet hjemmesider (med Netscape). Brug også tiden på at læse hjælpen du kan få frem med "F1".

Figur 4-5. The GIMP-hjælp

En fantastisk funktion i Gimp er håndtering af tastatur-genveje. Hvis du i en given menu mener at det ville være smart hvis du kan udføre en funktion ved at trykke "Alt-c", så trykker man lige "Alt-c" og genvejen er registreret.

Figur 4-6 er vist GIMP-logoet, og efter at have anvendt Filtre->Map->Papirbrik er resultatet som vist på Figur 4-7. Vælger du i stedet Script-Fu->Dekoration->Kaffeplet og derefter Script-Fu->Dekoration->Gamle Foto, så resultatet et billede som ligner noget fra forrige århundrede – se selv på Figur 4-8.

Figur 4-6. The GIMP-logoet

Figur 4-7. The GIMP-logoet efter papirbrik

Figur 4-8. The GIMP-logoet efter kaffe og gammel

For at komme videre med The Gimp kan du besøge Gimp User Group gug.sunsite.dk hvor der er guider til brug af Gimp og debat-fora, hvor der bliver debatteret Gimp.

gimp-savvy.com/BOOK/ findes bogen "Grokking the GIMP" som kan anbefales. På manual.gimp.org findes en brugervejledning til Gimp og meget andet. Endeligt har Eric Jeschke lavet en række fremragende tutorials der gennemgår en række specifikke opgaver der er en virkelig god indføring i GIMP.

4.2.3. Fjernelse af røde øjne

Fjernelse af røde øjne er en operation man hurtigt kan få brug for, især hvis man har taget billeder med f.eks. et mindre digitalkamera, hvor blitzen sidder rimeligt tæt på objektivet.

Eric Jeschke har lavet en tutorial der gennemgår fjernelse af røde øjne i Gimp. Denne tutorial er meget nem at følge. Hvis du synes det er kompliceret, så bladr endelig frem til slutningen, hvor der præsenteres en måde at automatisere processen på. Det kræver dog at man installerer et par ekstra plugins til Gimp – men det er rimeligt enkelt.

Først og fremmest skal du sørge for at de nødvendige filer til at oversætte plugins til Gimp er til stede. Det er blandt andet programmet gimp-config du skal have. Det følger formentlig med din distribution, sammen med en pakke kaldet noget i retning af "libgimp-devel".

Dernæst skal du installere et plugin til at mixe farvekanaler med. Du kan finde plugin'et her. Installationen er meget enkel

[tyge@hven ~]$ tar -zxvf channel_mixer-1.1.tar.gz
channel_mixer-1.1/
channel_mixer-1.1/channel_mixer.c
channel_mixer-1.1/channel_mixer-intl.h
channel_mixer-1.1/channel_mixer.html
channel_mixer-1.1/Makefile
channel_mixer-1.1/README
[tyge@hven ~]$ cd channel_mixer-1.1/
[tyge@hven ~]$ make
...
[tyge@hven ~]$ make install
gimp-config --install-bin channel_mixer
/usr/bin/install -c channel_mixer /home/tyge/.gimp-1.2/plug-ins/channel_mixer

make skridtet kan godt give et par advarsler, men det betyder ikke noget.

Det næste skridt er at installere selve det script der automatiserer processen. Det kan findes her, og skal blot placeres i dit Gimp script katalog, f.eks. ~/.gimp-1.2/scripts/.

Nu kan du starte Gimp, f.eks. med gimp fil. Herefter kan du blot markere et lille område af den røde pupil, og vælge "Script-Fu|Markering|Red Eye...". Du kan nu eksperimentere med værdierne. Generelt skal man bruge lavere værdier for Radius og Threshold jo mindre røde øjnene er. På Figur 4-9 kan du se et eksempel på en rødøjereduktion med den procedure beskrevet i dette afsnit.

Figur 4-9. Rødøje reduktion

4.2.4. Panoramabilleder

Det at sætte flere billeder, der forestiller forskellige dele af det samme motiv, sammen til et, kalder man at lave et panoramabillede. Det er en process der i princippet er rimeligt simpel, men kræver en del nøjagtighed – ihvertfald når billederne tages – for at resultatet bliver rigtigt godt. Men, resultatet kan blive absolut tåleligt selvom man har taget billederne i frihånd. Et eksempel er billederne på Figur 4-10, der er taget med håndholdt kamera (om aftenen, i overskuet vejr) i en stor bue og hvor kameraet ikke er blevet holdt specielt vandret. (Billedet er dog taget med et digitalkamera der har en panoramamodus).

Figur 4-10. Fem billeder der skal blive til et panorama

Ved hjælp af pakken PanoTools (omtales i Afsnit 4.2.4.1) er dette relativt let blevet til det billede du kan se på Figur 4-11. (Bemærk at de fem billeder og panoramaet ikke har samme skala og at panoramaet er blevet beskåret en lille smule).

Figur 4-11. Det færdige panorama

Det endelige billede er faktisk ikke så ringe endda (OK, horisonten og hækken kunne være mere lige), selvom udgangspunktet var mindre godt end ønskeligt.

Når vi skriver at processen er rimeligt simpel, er det fordi der findes nogle gode programmer til at sætte billeder sammen med. Selve teorien bag panoramabilleder er faktisk temmeligt kompliceret. F.eks. skal et godt panorama program tage hensyn til varierende fokus og lysforhold på de enkelte billeder, eventuel rotation eller tiltning af kameraet, samt linsens egenskaber, så som dens fejl (ingen linser er perfekte). Så den første tanke man får – at det bare handler om at lave lidt "klippe-klistre" med nogle billeder – er ikke helt korrekt. Hvis du gerne vil vide mere om teorien bag panorama billeder, er et godt sted at starte at læse www.panoguide.com der indeholder et væld af information om blandt andet hvordan man bedst optager panoramabilleder, og hvad de forskellige begreber betyder, mv. Du kan godt få noget ud af at læse resten af dette afsnit uden at kende informationerne fra Panoguide, men hvis du virkeligt vil lave flotte panoramabilleder – der f.eks. dækker 360 grader og både jord og himmel – kommer du ikke uden om at kende til de ting Panoguide omtaler.

I det følgende vi vil præsentere nogle programmer der kan anvendes til at lave panoramaer med.

4.2.4.1. PanoTools

PanoTools er ubetinget et af de bedste programmer til at lave panoramabilleder med. Med det kan du lave panoramaer, stereobilleder, virtuelle tours, mv.

PanoTools programmerne består af mange forskellige dele. Her vil vi blot kigge på de programmer der kan lave panoramaer som på Figur 4-11 . Disse er egentlig en række kommandolinjeprogrammer, der fungerer ved at man skriver et "script" de forskellige programmer bruger. Fra dette script og fra originalbillederne genereres så det færdige panorama.

Det at lave scriptet er den vanskeligste del af processen. Heldigvis findes der nogle værktøjer der kan hjælpe med til at lave det og som har grafiske grænseflader. To af disse, PTPicker og Hugin, vil blive omtalt i det følgende.

PTPicker er en del af PanoTools og programmets formål er at matche billeder, det vil sige at man manuelt skal specificere for to forskellige billeder, hvilke punkter der er ens. Det er simplere end det lyder, og der er både tutorials med programmet og på nettet.

PTPicker er et javaprogram og hvis du har fulgt anvisningerne i installationen af panorama-tools, kan du starte PTPicker ved at skrive ptpicker. Efter at programmet er startet, kan du vælge "File|New" for at lave et nyt projekt. Der vil komme en dialogboks op ala den du kan se på Figur 4-12.

Figur 4-12. Nyt PanoTools project med PTPicker

På billedet kan du se indstillingerne efter at jeg har sat dem til de værdier der passer med mine billeder. En interessant detalje er "Focal Length". Hvis du har taget dine billeder med et analogt kamera og scannet dem ind fra et fremkaldt foto, skal du være opmærksom på at fotobutikken typisk ikke fremkalder hele dit negativ. Derfor ændres den focale længde faktisk. Du kan på PanoGuide læse mere om hvad man så gør, eller du kan eksperimentere (ved at kigge på resultaterne) med forskellige værdier. For et digitalkamera, kan du med Jhead (omtalt i Afsnit 4.4.1) se hvad den focale længde er. Bemærk at alle længder er relativt til 35 mm film – en focal længde på 7.4 mm svarer til omkring 37 mm (afhængigt af kameraet – Jhead kan regne dette ud).

Efter du har klikket OK, vil PTPicker bede dig om at gemme dit project. Gem det i samme katalog som du har dine billeder, og brug navnet Script.txt. Nu kan du begynde at hente billeder ind i dit project. Brug "Left Image|Image0" og "Right Image|Image1" til dette. Nu burde du have et billede i hver side af PTPicker, og du kan begynde at matche punkter i billederne. På Figur 4-13 kan du se hvordan det kan se ud.

Figur 4-13. Punkt matching med PTPicker

Du kan matche et punkt ved at klikke i det ene billede (f.eks. det til venstre) og så flytte den røde plet der kommer i det andet billede til den er over det samme punkt som i det første billede. Da en kameralinse har flest fejl i kanterne, er det bedste at holde sig fra kanterne, så vidt muligt.

Når du synes du har punkter nok, kan du gå videre til det næste billede. Når du er helt færdig, kan du gemme projektet, og afslutte PTPicker. Det er nu tid til at køre PTOptimizer (som finder en optimal korregering af de enkelte billeder, baseret på kontrolpunkterne) og PTStitcher (som sætter billedet sammen fra informationerne fra PTOptimizer). Egentlig burde PTPicker kunne køre dem for dig, men der er fejl i den script fil PTPicker laver, og de skal rettes inden du kan køre PTOptimizer og PTStitcher.

I scriptet Script.txt, skal du ændre den første linje. Den kan f.eks. se sådan ud

p f2 w15760 h7880 v360 u10  n"JPEG"

I filen /usr/share/doc/panorama-tools-2.6bml10/Optimizer_Script.txt kan du læse om script filens syntaks, inden den skal igennem PTOptimizer. Her vil vi nøjes med at sige at du skal linjen til

p f2 w<bredde af panorama> h<højde af panorama> v<Field of view> u10  n"JPEG"

Altså, f.eks.

p f2 w4000 h2000 v120 u10  n"JPEG"

Hvis du vil have et billede på 4000x2000 pixels, og du tror at de billeder du har taget dækker en vinkel på 120 grader (Field of view på 120). Dernæst skal du finde linjen

v v0

og fjerne den. Denne linje fortæller PTOptimizer at du gerne vil have optimeret Field of view på det første billede, men det virker kun hvis du laver panoramaer der dækker 360 grader! Gem det ændrede script under samme navn Script.txt.

Nu er du klar til at køre dit script igennem PTOptimizer og PTStitcher:

[tyge@hven ~]$ PTOptimizer Script.txt
Optimizing Variables
Average Difference between Controlpoints
after 0 iteration(s): 6.53929 pixels
Average Difference between Controlpoints
after 10 iteration(s): 1.70952 pixels
...

Du skulle gerne komme rimeligt langt ned, ellers er det tegn på at der er noget galt med billedet eller din punkter (f.eks. hvis du har taget et billede af noget der har flyttet sig meget. Se Panoguide for mere information). Herefter er det tid at køre PTStitcher.

[tyge@hven ~]$ PTStitcher -o panorama.jpg Script.txt
Converting Image 0      100%
Converting Image 1      100%
...
Preparing Stitching Masks       50%
Calculating Alpha Channel       99%
Applying Feather Tool       50%
Inserting Alpha Channel       50%
Flattening Image

PTStitcher kan være rimeligt længe om at køre, men resultatet er til gengæld også som regel godt.

Når PTStitcher er færdig, kan du kigge lidt på billedet, f.eks. med Xli (omtalt i Afsnit 4.1.1). Det kan være at det giver anledning til at vælge nogle flere kontrolpunkter med PTPicker. Hvis din horisont f.eks. bobler meget op og ned, har du formentlig filmet noget der bevæger sig meget (f.eks. et træ der svajer i vinden) og det kan være at du skal bruge nogle flere fikserede punkter omkring horisonten, mv.

Når du er tilfreds med resultatet, skal du formentlig beskære billedet lidt. Det kan du f.eks. gøre i programmet Gimp (omtalt i Afsnit 4.2.2).

4.2.4.1.1. Hugin

Da PTPicker lider under at programmet ikke udvikles længere, har en gruppe udviklere påbegyndt arbejdet på programmet Hugin. På figur Figur 4-14 kan du se et skærmskud af Hugin.

Figur 4-14. Punkt matching med Hugin

Hugins hjemmeside er på hugin.sf.net. Hugin er ikke specielt modent endnu – men hvis man installerer det fra CVS, kan man faktisk få det til at virke bedre end PTPicker. Det kræver dog at man først har installeret et bibliotek kaldet "wxWindows", inklusiv support for "xrc". Det nemmeste sted at finde disse biblioteker er, (september 2003), på rpm.pbone.net, hvor filen wxGTK-xrc-2.4.1-0.fdr.4.rh90.i386.rpm kunne findes og installeres.

Når man har installeret Hugin, kan man ret nemt anvende programmet til at sætte kontrolpunkter, og lave et panorama billede. Husk at læse Hugins README, der beskriver hvordan man hurtigt kan lave et panorama billede. Husk også at sætte FOV til noget der passer med den vinkel dine billeder dækkert (Hugin antager 360 til at starte med, hvilket ikke vil give noget billede, med mindre dine billeder dækker mere end 360 grader). Det endelige billede ender dog et lidt underligt sted, nemlig i /usr/tmp/hugin*/noget.

Hugin bliver udviklet aktivt, så forhåbentligt bliver disse fejl snart rettet.