Allgemein Experiment: Entrauschen durch Drehen

W.P.

Mitglied
Registriert
16.10.02
Beiträge
5.110
Ort
Anzing BY
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:
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
Das Witzige ist: Die Grad-Zahl ist nicht so entscheidend. Entscheidend ist die Anzahl der Durchläufe.
Viel Spaß beim Ausprobieren und Experimentieren.
 
AW: Experiment: Entrauschen durch Drehen

Hallo Werner.

Ich fand die Idee interessant - und warte seitdem gespannt auf Reaktionen/Tests hier ;)

Leider habe ich keine Ahnung, wie ich das Skript in FF eingebunden kriege ...
... wenn Du eine Kurzanleitung gibst (wo speichern, mit welchen Kommandos in FF aktivieren/einbinden), dann teste ich gerne einmal.

Zum Vergleich kann ich Neatimage anbieten, dass habe ich.

Gruß,
Michael
 
AW: Experiment: Entrauschen durch Drehen

Ich fand die Idee interessant - und warte seitdem gespannt auf Reaktionen/Tests hier ;)

Moin Michael,

den Code per Copy & Paste in einen Editor (z. B. Wordpad) einfügen und als "Entrauschen.vbs" in das Script-Verzeichnis von FF in deinem Benutzerprofil speichern.
Am bequemsten geht das, wenn du mit dem Editor das Verzeichnis
C:\Users\BENUTZERPROFIL\AppData\Local\JKS\FixFoto\Script
direkt annavigierst, 'Datei/Speichern unter' wählst, den o.a. Namen mit An- und Abführungszeichen eingibst und auf [Speichern] klickst.

Oder:
Du öffnest in FixFooto per F11 den Script-Editor und fügst in das Editorfenster den Code per Copy&Paste ein. [Speichern unter] und weiter wie oben.

Wenn Entrauschen.vbs im Script-Verzeichnis liegt, wird es mit aktuellen FF-Betas beim Öffnen automatisch eingebunden und kann im Aufgabenbereich unter Skripte/Effekte z. B. mit Doppelklick aufgerufen werden. Oder aber über F10.

Das Script-Verzeichnis liegt seit einigen Betas (b86?) für den Windows-Explorer etwas versteckt.
Ab Local sind die Verzeichnisse 'versteckt'. Du musst also in den Ordneroptionen des Windows-Explorers auf der Karte 'Ansicht' Alle Dateien und Ordner anzeigen markieren, wenn du das Verzeichnis ansehen willst.

Vielleicht sicherst du das Script auch noch anderenorts für diene Neuinstallationen... ;)

Gruß, Hippo6

P. S. Ich würde die Anzahl der Durchläufe nicht allzu hoch ansetzen. ;) Mein Schnelltest mit einem kleinen Ausschnitt hat bereits bei einer Anwendung (=2 Loops)erkennbare Spuren im Bild hinterlassen. Alles war leicht gesoftet.
 
Zuletzt bearbeitet von einem Moderator:
AW: Experiment: Entrauschen durch Drehen

Hallo Michael,

am Einfachsten in einen Quelltexteditor laden und als Entrauschen.vbs speichern. Wo überlasse ich Dir, am Besten dort, wo Du es schnell ändern kannst. Ab der B86 kannst Du Skripte nämlich ganz einfach über das Dateimenü importieren. Menü-> Datei->importieren->Skript importieren.

Dann musst Du auch nicht nach den Pfaden suchen, die ab den neuen Betas für den Laien quasi irgendwo liegen.

Ansonsten siehe meine Signatur ;)

@hippo6
1 Durchlauf reicht für die meisten Cams. Sonst muss man wieder zu stark mit Kanten schärfen darüber gehen.

@all
Mich würde interessieren, wie sich die Gradzahlen bei Euch auswirken. Man sollte sie jedoch relativ klein halten, da sonst der Speicherbedarf in die Höhe schnellt. Bei Komma-Angaben bitte nur "." benützen, sonst wird ganzzahlig interpretiert.

Gedanklich habe ich mich damit beschäftigt, das Original mit einer Kantenmaske zu schützen und mit dem Ergebnis zu mischen. Allerdings weiß ich nicht, wie genau das Ausgangsbild mit dem "gesofteten" Bild zusammen passt.
 
AW: Experiment: Entrauschen durch Drehen

Alles war leicht gesoftet.
Na fein, dass es einer gemerkt hat ... Dieses Ergebnis war auch ohne Test klar vorhersagbar, letztendlich reicht ein einmaliges leichtes Drehen um ein paar Grad, um das Bild deutlich in der Qualität zu mindern. Das aber per Batch rotierend durchzuführen unter Inkaufnahme kumulierenden Qualitätsverlustes, nur um ein wenig Rauschen loszuwerden, ist die Idee des Jahres :)

EDIT:
@Werner
1 Durchlauf reicht für die meisten Cams. Sonst muss man wieder zu stark mit Kanten schärfen darüber gehen.
Falsch, beim Entzerren und Drehen vorher Kanten schärfen, und das nicht zu knapp. Nach dem Drehen sind Feinstrukturen weggerechnet und es sind keine Kanten zum Schärfen mehr da. Den Opfern Deines Scriptes täte es gut, vor jeder Teildrehung einmal Kanten zu schärfen.
 
Zuletzt bearbeitet:
AW: Experiment: Entrauschen durch Drehen

Ab der B86 kannst Du Skripte nämlich ganz einfach über das Dateimenü importieren. Menü-> Datei->importieren->Skript importieren.

Dann musst Du auch nicht nach den Pfaden suchen, die ab den neuen Betas für den Laien quasi irgendwo liegen.
Danke! Das war an mir vorbeigegangen...
Hab ich wenigstens was gelernt dabei. ;)
@hippo6
1 Durchlauf reicht für die meisten Cams. Sonst muss man wieder zu stark mit Kanten schärfen darüber gehen.
Werner, nicht bös' sein, aber ich hab's wieder gekillt.

Gruß, Hippo6
 
AW: Experiment: Entrauschen durch Drehen

Naja, das Warpen bei Olympus-ORFs- ich glaube nicht wirklich, dass das was mit der Entrauschung zu tun hat- die RAW-Daten enthalten halt an den Raendern zusaetzliche Pixel, die zu internen Berechnungen des Grauabgleichs etc. verwendet werden. Der Sensor ist groesser als die 100% Mattscheibe/Spiegel bei der E-1- wenn man nicht Oly-RAW-Converter hernimmt, sieht man an den Raendern ein Bisschen mehr, und wenn man z.B. die Vorschau von Picasa nimmt, das fuer die Anzeige der ORF-Dateien nicht die eingebetteten Jpgs nimmt, sondern recht flott das rohe Bild neu rendert, dann hat man diesen Warp-Effekt( so man denn JPG und RAW gleichzeitig geschossen hat)- da kommt an den Raendern was dazu, und nach der Anzeige des JPGs scheint das Bild ein Bisschen rausgezoomt/warped zu werden, weil es eben an den Raendern ein Bisschen mehr hat, dass dann auf die Aktuelle Ansicht gerendert wird.
Und der Efffekt durch leichtes drehen liegt doch einzig und alleine am verwendete Drehalgorithmus und der eventuell damit verbundenen Kappung von Nachkommastellen.
Ich habe es allerdings auch nicht wirklich probiert, ich mutmasse also auch nur.
Wenn ich mich recht erinner, dann behauptet Adobe doch bei PS-CS, oder gar erst CS2 nicht mehr mit eckigen Pixeln zu rechen, sondern mit sphaerischen Punkten oder gar Voxeln, und dann auch intern mit hoeherer Genauigkeit, als das Original das eventuell hergibt.
Da faende ich einen Vergleich nach leichtem hin(und eventuell wieder zurueck) Drehen interessant.
Trotzdem ein guter Ansatz-ich werde der Beispiele lauschen, ob die mich eventuell ueberzeugen, es selbst mal auszuprobieren. Und wenn es wirklich nur am Drehalgorithmus liegt, dann kann man den ja zur Not auch komplett ohne wirkliche Drehung zum Entrauschen missbrauchen ...
 
AW: Experiment: Entrauschen durch Drehen

Hallo,
habs mal kurz angetestet. Das höherfrequente Helligkeitsrauschen wird reduziert, das Farbrauschen ist weitestgehend unbeeindruckt, nur bei deutlich mehr Durchläufen tut sich langsam was, allerdings, wie Jochen schon sagte, unter eklatantem Verlust von Details. Schöner Weichzeichner ;-)

Wen es interessiert ...

Original:
http://www.joghi.de/Drauschen/Original.jpg
Vierer-Vergleich:
http://www.joghi.de/Drauschen/Drauschen_1.JPG
Einzelbilder:
http://www.joghi.de/Drauschen/Drauschen_D1_L5.JPG
http://www.joghi.de/Drauschen/Drauschen_D1-5_L10.JPG
http://www.joghi.de/Drauschen/Drauschen_D2_L5.JPG
http:////www.joghi.de/Drauschen/Drauschen_D2_L10.JPG
http://www.joghi.de/Drauschen/Drauschen_D2_L15.JPG
http://www.joghi.de/Drauschen/Drauschen_D3_L5.JPG
http://www.joghi.de/Drauschen/Drauschen_D4_L5.JPG

grüssle Joghi
 
Zuletzt bearbeitet:
AW: Experiment: Entrauschen durch Drehen

Hallo Jochen,

darum steht "Experiment" davor ;).
 
Zurück
Oben