|
|
Unschärfeverlauf erzeugen |
|
Melo_90 |

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 18.08.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.10.2016, 21:07
Titel: Unschärfeverlauf erzeugen
|
 |
|
 |
|
Guten Abend,
ich würde gerne Folgendes realisieren. Durch den Code unten generiere ich einen Tropfen, siehe linkes Bild. In diesem Tropfen möchte ich nun den Tropfenkern, der im linkes Bild 1 Pixel groß ist, größer darstellen, sprich einen Tropfenkerndurchmesser angeben können. Der Tropfenkern selbst ist gänzlich weiß (Wert: 255). Ausgehend vom Rand dieses Tropfenkerns würde ich gerne bis zum Matrixrand einen (linearen) Abfall vom Wert 255 bis zum Wert 0 erhalten der einer Funktion folgt (linear, quadratisch, etc.). Aktuell kommt das rechte Bild raus. Da komme ich aber nicht weiter. Noch mal die einzelnen Punkte:
-Tropfenkerndurchmesser: d_drop
-(vorerst) linearer Unschärfeverlauf ausgehend vom Tropfenkernrand bis zum Matrixrand (immer von 255 bis 0)
-Gesamttropfen soll in der Matrix stets mittig angeordnet sein
Hier der Code (rechter Tropfen):
Ein Beispielbild ist beigefügt. So wie im rechten Bild soll der Tropfen auch ungefähr aussehen, das ist aktuell aber eher noch Zufall das der so raus kommt. Mit dem Funktionsverlauf komme ich auch auf keinen grünen Zweig.
Vielen Dank im Voraus
Gruß
Beschreibung: |
|
 Download |
Dateiname: |
untitled.jpg |
Dateigröße: |
171.85 KB |
Heruntergeladen: |
329 mal |
|
|
|
|
|
Melo_90 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 18.08.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.10.2016, 17:24
Titel:
|
 |
Keiner eine Idee bzw. fehlen Informationen?
Gruß
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 16.10.2016, 00:36
Titel:
|
 |
Hallo Melo_90,
Bitte bumpe eine Frage frühestens nach 24 Stunden, siehe http://www.gomatlab.de/der-kleine-g.....b-de-knigge-t125.html#233.
Fragen sollen immer nur einmal gepostet werden, und nicht mehrfach in verschiedenen Kategorien.
Danke!
Zitat: |
d_drop = 10; %Zahl muss ungerade sein damit kein Quadrat entsteht |
10 ist aber gerade.
Was ist genau Deine Frage? Du hast den Radius gegeben und möchtest eine Funktion dazu erstellen, die linear, quadratisch bzw. "etc" abfällt.
Wenn der Tropfen in der Mitte rund ist, kann er nicht linear bis zum Rand abfallen und auf dem Rand 0 erreichen, da der Rand quadratisch ist. Insofern ist die Aufgabe bisher unlösbar.
Gruß Jan
|
|
|
Melo_90 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 18.08.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.10.2016, 14:21
Titel:
|
 |
Hallo,
wusste ich nicht. Werde ich beim nächsten Mal beachten .
Ich glaube ich verstehe, wo das Problem liegt. Vllt. habe ich das falsch formuliert. Linear kann er bis zum Matrixrand in der Zeile abfallen, die durch den Mittelpunkt geht. Bei den anderen Zeilen ist es klar, dass er das dort nicht kann, da man sonst als Tropfen ein Rechteck erhalten würde.
Korrektur: Der Tropfen soll ausgehend vom Tropfenkernrand bis zum Gesamttropfenrand linear abfallen, wobei ich stets den Durchmesser des Gesamttropfens betrachte.
Eine lineare Funktion ist erstmal ausreichend (quadratisch, etc. ist aktuell unwichtig). Die Frage ist wie ich das realisieren kann. Hier noch der Code wie ich einen Tropfen erzeuge so wie ich ihn haben will, nur eben ohne die Größe des Tropfenkerns vorgeben zu können.
Gruß
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 22.10.2016, 12:33
Titel:
|
 |
|
 |
|
Hallo Melo_90,
Berechne zunächst den Radius für jeden Pixel. Die
meshgrid
Methode ist dafür schon mal gut. Danach benötigst Du eine "lineare Transformation", die eigentlich ziemlich einfach ist: Du musst nur eine Konstante vom Radius-Wert abziehen und mit einem zweiten Konstanten multiplizieren. Wenn der Radius innerhalb eines gewissen Kreises zum gleichen Funktionswert führen soll, benötigst Du noch ein
max
dazu:
Die beiden Konstanten a und b bekommst Du am besten mit Bleistift und Papier heraus. Das sind zwei Gleichungen mit zwei Unbekannten: Welchen Wert soll ein Punkt am äußeren Rand haben, und welchen im Mittelpunkt, bzw. auf dem Rand des Tropfens.
Das entspricht genau dem, was Du im ersten Post mit "coeff+((rad_dis/n)-1" schon getan hast, wenn man die Terme ein wenig umstellt.
Ich nehme an, das Du schon mal zwei Gleichungen mit zwei Unbekannten gelöst hast. Wenn nicht, frage nochmal speziell nach. Für eine quadratische Abnahme muss man nur noch einmal zusätzlich quardieren.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|