Hallo,
die Idee liegt mir schon lange auf dem Herzen. Immer, wenn ich schief angehalten habe und durch freies Drehen die Bildlage korrigieren musste, konnte ich mir idR auch das Entrauschen meiner Bilder bei schlechten Lichtverhältnissen sparen.
Das und die Überlegung, wie die von Olympus das mit Ihren Raw-Daten machen, hat mich auf diese Idee gebracht. (Entwicklung mit dcraw gibt ein Bild mit 8MP, mit OLY-Software oder JPEG gute 7MP. Ausserdem ist bei der Entwicklung mit dcraw ein bischen mehr Rand zu sehen) Allerdings vermute ich, dass die Programmierer hier eine Art Warpen benützen, was Zeitvorteile bringt, muss ja schnell gehen! Zudem werden Routinen der Größenveränderung eingebracht, die die Firmware der Kamera von Haus aus mit bringt.
Sei's drum:
Das Witzige ist: Die Grad-Zahl ist nicht so entscheidend. Entscheidend ist die Anzahl der Durchläufe.
Viel Spaß beim Ausprobieren und Experimentieren.
die Idee liegt mir schon lange auf dem Herzen. Immer, wenn ich schief angehalten habe und durch freies Drehen die Bildlage korrigieren musste, konnte ich mir idR auch das Entrauschen meiner Bilder bei schlechten Lichtverhältnissen sparen.
Das und die Überlegung, wie die von Olympus das mit Ihren Raw-Daten machen, hat mich auf diese Idee gebracht. (Entwicklung mit dcraw gibt ein Bild mit 8MP, mit OLY-Software oder JPEG gute 7MP. Ausserdem ist bei der Entwicklung mit dcraw ein bischen mehr Rand zu sehen) Allerdings vermute ich, dass die Programmierer hier eine Art Warpen benützen, was Zeitvorteile bringt, muss ja schnell gehen! Zudem werden Routinen der Größenveränderung eingebracht, die die Firmware der Kamera von Haus aus mit bringt.
Sei's drum:
Code:
[COLOR="Green"]'* Entrauschen.vbs
'* Autor: Werner Pilwousek
'* Stand: 24.04.2007
'* Start: 23.04.2007
'* FFSubmenu=Effekte
'* FFName=Experiment: Entrauschen durch Drehen
'* Experiment darf nach Belieben verändert oder verbessert werden[/COLOR]
Option Explicit
Main
Sub Main()
Dim lWidth [COLOR="Green"]'Originalbreite[/COLOR]
Dim lHeight [COLOR="Green"]'Originalhöhe[/COLOR]
Dim lNewWidth [COLOR="Green"]'Breite nach Drehungen[/COLOR]
Dim lNewHeight [COLOR="Green"]'Höhe nach Drehungen[/COLOR]
Dim Degrees [COLOR="Green"]'Gradzahl in DEG[/COLOR]
Dim lLoops [COLOR="Green"]'Anzahl der Schritte[/COLOR]
Dim i [COLOR="Green"]'Schleifenvariable[/COLOR]
Degrees = 2.5 [COLOR="Green"]'2,5°[/COLOR]
lLoops = 2 [COLOR="Green"]'Durchläufe[/COLOR]
[COLOR="Green"]'Originaldimensionen sichern[/COLOR]
lWidth = FF_GetImageWidth()
lHeight = FF_GetImageHeight()
[COLOR="Green"]'Vor- und Zurückdrehen[/COLOR]
For i = 0 To lLoops - 1
FF_Rotate Degrees, False
Next
For i = 0 To lLoops - 1
FF_Rotate 360 - Degrees, False
Next
[COLOR="Green"]'Aufgeblähte Dimensionen(durch Drehen werden Bildteile angefügt) ermitteln[/COLOR]
lNewWidth = FF_GetImageWidth()
lNewHeight = FF_GetImageHeight()
[COLOR="Green"]'Überflüssige Bildteile abschneiden[/COLOR]
FF_Crop (lNewWidth - lWidth) \ 2, (lNewHeight - lHeight) \ 2, lWidth, lHeight
[COLOR="Green"]'Bild auf Arbeitsfläche laden[/COLOR]
FF_Reload
End Sub
Viel Spaß beim Ausprobieren und Experimentieren.