INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Kreisförmige Filtermaske - Array



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

14.08.2015, 13:26
Beitrag #1

fischer Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Nov 2014

2014
2014
DE


Deutschland
Kreisförmige Filtermaske - Array
Hallo liebe LabVIEW,

Mein Problem scheint recht simpel, aber ich verzweifel...
Ich möchte eine kreisförmige Filtermaske erstellen, die ich in einem Array ablegen will, dazu will ich LabView sagen, wie viele Pixel Durchmesser bzw Radius der Kreis haben soll.
Das innere des Kreises, fülle ich nach dem Abstandsgesetz mit 1en auf.
Ich frage also ob x²+y² kleiner gleich r² ist, wenn ja schreibt er eine 1 in das jeweilige Array-Element (Kreisformel), funktioniert soweit auch alles ohne Probleme, nur jetzt wird es für mich kompliziert.
Die "Pixel" die nicht komplett innerhalb des Kreises liegen, sondern nur von diesem tangiert werden, sollen aber keine 0en enthalten, sondern sozusagen die "Fläche" die der Kreis vom Pixel schneidet, also die Schnittmenge des Pixels mit dem Kreiselement in diesem Pixel.

Im Endeffekt sind im inneren des Arrays also 1en und in den Ecken 0en. An den Kanten der 1en sollen dann aber halt Dezimalwerte zwischen 0 und 1 stehen, je nachdem wie groß die geschnittene Fläche ist.

Ich hoffe, dass mein Problem so klar geworden ist und mir jemand von euch helfen kann.

Euch allen ein schönes Wochenende.
Viele Grüße, Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.08.2015, 13:46 (Dieser Beitrag wurde zuletzt bearbeitet: 14.08.2015 13:47 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kreisförmige Filtermaske - Array
Hallo Max Fischer,

Zitat:Im Endeffekt sind im inneren des Arrays also 1en und in den Ecken 0en. An den Kanten der 1en sollen dann aber halt Dezimalwerte zwischen 0 und 1 stehen, je nachdem wie groß die geschnittene Fläche ist.

Idee: arbeite mit "Oversampling"…
Benutze ein feineres Raster als du später für deine Pixel benötigst. Wieviel feiner es sein muss, entscheidest du über die gewünschte Genauigkeit.

Nehmen wir z.B. ein 10fach feineres "Subpixel"-Raster. Für dieses berechnest du wie gehabt, ob die Subpixel im oder außerhalb des Kreises sind. Dann nimmst du jeden 10×10-Block von Subpixeln und bildest den Mittelwert davon: der ergibt dann dein eigentliches Pixel (in diesem Beispiel auf 1% genau…)!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.08.2015, 14:32
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Kreisförmige Filtermaske - Array
https://de.wikipedia.org/wiki/Kreissegment Wink

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.08.2015, 13:21
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Kreisförmige Filtermaske - Array
Ich bezweifle, dass es toll was bringt, wenn man da mit Kreissegment-Flächenberechnungen das Problem so exakt wie möglich löst. Eine einfache lineare Interpolation, wenn der Masken-Umfangsring ein Pixelkreisfläche durchschneidet, tut es sicherlich auch. (Und wenn die Pixel quadratisch sein sollten, dann eben mit einer äquivalenten Kreisfläche rechnen)

Also so:
Rm=Radius des kreisförmigen Maske, Rp = Radius der Pixels, r = x²+y² = Lage des zu untersuchenden Pixels
Wenn r < Rm-Rp: Element = 1
Wenn r > Rm+Rp: Element = 0
Wenn Rm-Rp < r <Rm+Rp: Element = (Rm+Rp-r)/2Rp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.08.2015, 06:15
Beitrag #5

fischer Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Nov 2014

2014
2014
DE


Deutschland
RE: Kreisförmige Filtermaske - Array
Guten Morgen zusammen,

Danke erstmal für die Ansätze, ich werde Sie gleich mal ausprobieren.
Dass mit dem "Upsampling" hatte ich auch schon mal überlegt, war mir aber nicht sicher, ob die Lösung nicht zu ungenau und eventuell später auch zu rechenintensiv wäre.

Guten Start in die Woche wünsche ich.
LG, Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: