LabVIEWForum.de
Mit Maus Daten aus Intensitäts-Graph löschen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Grafik & Sound (/Forum-Grafik-Sound)
+---- Thema: Mit Maus Daten aus Intensitäts-Graph löschen (/Thread-Mit-Maus-Daten-aus-Intensitaets-Graph-loeschen)



Mit Maus Daten aus Intensitäts-Graph löschen - kaiman - 14.07.2010 12:26

Hallo zusammen,

mir fehlen einfach die Ideen für die Umsetzung.
Ich habe folgendes vor:
Ich lese ein Bild ein transformiere es mit FFT in den Frequenzraum. Nun möchte ich mir das Spektrum anzeigen lassen und am liebsten mit der Maus einzelne Frequenzen aus dem Spektrum entfernen - das Bild also filtern.
Bei diesem Vorhaben bereiten mir im wesentlichen zwei Dinge Kopfzerbrechen.
Zum einen,"wie finde ich die Cursor-Koordinaten in der Anzeigefläche des Graphen?" und zum anderen "wie kann ich einzelne Bereiche in einer Matrix löschen?".

Für das erste Problem hab ich mir schon die LV-Beispiele angeschaut, aber irgendwie finde ich das mit der ganzen Rumrechnerei ein bischen "unsauber". Wenn sich die Rahmenbreite des Graphs ein bischen ändert, stimmt alles nicht mehr...
Bei dem zweiten Problem bin ich glaub ich einfach nur blind, oder es geht einfach nicht. Mit der Funktion "Delete From Array" kann man ja leider nur Zeilen oder Spalten löschen, nicht aber eine Fläche... Hab schon mit dem Pulse-VI aus den LV-Beispielen gearbeitet und dann damit meinen Frequenzraum verwurstet... Wenn ich grad so drüber nachdenke ist das eigentlich also kein ProblemWacko

Es bleibt aber noch das Problem mit dem Maus-Cursor.
Also, wenn jemand da eine Idee hat, bitte einfach austoben und in die Tasten hauenTippen

Gruß und danke schonmal für das Lesen der Frage,
Kai

P.S.: Vllt. liegt meine Blockade auch am Wetter...Cool


Mit Maus Daten aus Intensitäts-Graph löschen - GerdW - 14.07.2010 12:39

Hallo Kai,

zum "Bereich im Bild löschen":
schon mal daran gedacht, mit ReplaceArraySubset einen Bereich im Array auf Null zu setzen? Oder anders gefragt: wie soll "DeleteFromArray" bitte mitten in einem 2D-Array ein Rechteck entfernen? Soll da ein Loch im Array entstehen?

Zum Koordinaten-Umrechnen gibt's eine fertige Methode:
[attachment=27829]

Edit:
Und wenn du schon Cursor verwendest: da gibt es so Properties wie "Active Cursor" und "Cursor Position"...


Mit Maus Daten aus Intensitäts-Graph löschen - kaiman - 14.07.2010 12:59

Hallo Gerd,

danke für die schnelle Antwort und den Lösungsvorschlag!
Zum dem Ersetzen der Matrix-Werte mit "Replace Array Subset": Damit kann man doch auch "nur" einzelne Werte oder eine ganze Zeile/Spalte ersetzen, oder? Ich würd aber gerne sagen können z.B. A(i bis i+10, j bis j+5) = 0. Aber egal dafür habe ich ja auch schon ne Lösung gefunden.

Ichhab grad mal versucht deine Lösung nachzubauen, aber bin schon am Prop.Node des Graphen gescheitert. Ich finde in der Liste einfach keinen Eintrag mit "Coords" oder "XY". Vllt. liegt das an LV 7.1, oder ich bin mal wieder blind.


Mit Maus Daten aus Intensitäts-Graph löschen - jg - 14.07.2010 13:04

' schrieb:Ichhab grad mal versucht deine Lösung nachzubauen, aber bin schon am Prop.Node des Graphen gescheitert. Ich finde in der Liste einfach keinen Eintrag mit "Coords" oder "XY". Vllt. liegt das an LV 7.1, oder ich bin mal wieder blind.
Ist eine InvokeNode, keine Property, die es jedoch in LV7.1 noch nicht gibt.Sad

Gruß, Jens


Mit Maus Daten aus Intensitäts-Graph löschen - GerdW - 14.07.2010 13:05

Hallo Kai,

erstmal zum Replace:
[attachment=27832]
Funktioniert auch mit LV7.1!

Zur InvokeNode:
Ja, die gibt es bei LV7.1 noch nicht. Probier mal dein LV8.2 aus...
Die PropertyNodes zu den Cursorpositionen gibt es aber!


Mit Maus Daten aus Intensitäts-Graph löschen - kaiman - 14.07.2010 13:18

Leider bin ich an 7.1 gebunden, deswegen muss ich das dann wohl oder übel doch durch Rumrechnen lösen. Aber der Ansatz hat mich auf jeden Fall schon win Stückchen weiter gebracht.
Danke!

EDIT: Bei dem Ersetzen hab ich wohl übersehen, dass man der Funktion auch wieder eine Matrix übergeben kann...


Mit Maus Daten aus Intensitäts-Graph löschen - RoLe - 14.07.2010 13:57

' schrieb:Ist eine InvokeNode, keine Property, die es jedoch in LV7.1 noch nicht gibt.Sad
' schrieb:Zur InvokeNode:
Ja, die gibt es bei LV7.1 noch nicht.
Die InvokeNode gibt es bereits in LV7.1 ist aber eine private.

Hier ein LV7.1.1 VI zum rauskopieren Wink


Mit Maus Daten aus Intensitäts-Graph löschen - jg - 14.07.2010 13:58

' schrieb:Die InvokeNode gibt es bereits in LV7.1 ist aber eine private.
:top1:Soweit hab ich meine 7.1er Version nicht gepimpt.

Gruß, Jens


Mit Maus Daten aus Intensitäts-Graph löschen - kaiman - 14.07.2010 14:16

Tausend Dank! Guru1
Das ist genau das was ich gesucht habe! Der Rest sollte dann nicht mehr das Problem sein...
Genau das was man einem so heißen Tag braucht!Top1

Gruß, Kai