LabVIEWForum.de
RGB Wert eines Pixels - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Grafik & Sound (/Forum-Grafik-Sound)
+---- Thema: RGB Wert eines Pixels (/Thread-RGB-Wert-eines-Pixels)



RGB Wert eines Pixels - DeltaBravo - 07.08.2010 23:05

Hallo LabView Gemeinde.

Ich bin neu hier im Forum und bin seit einigen Jahren nicht mehr mit LabView in Berührung gekommen. Zuletzt innerhalb meiner Diplomarbeit vor 6 Jahren.
Ich suche ein VI, welches den RGB Wert eines bestimmten Pixels auf einem Multimonitorsystem ausgibt. Leider bin ich bis jetzt nicht fündig geworden. Gibt es das schon irgendwo?

Als Ausweg habe ich versucht über Connectivität -> DDL-Node eine Windows DLL namens gdi32.dll einzubinden, um damit die Funktion "getpixel" zum laufen zu bringen - Ohne Erfolg.
Kann mir bitte jemand ausführlich beschreiben, wie ich diese DLL einbinde? Habe gelesen, dass man eventuell eine "Wrapper.dll" nutzen muss!? Komm diese hier in Frage?

Welche Parameter sind richtig? Welche Datentypen an welchen Parameter bzw. Ausgang etc.? Was ist die hdc bei dieser Funktion?


Bitte helft mir,
Vielen Dank im Voraus,
Stephan


RGB Wert eines Pixels - IchSelbst - 08.08.2010 10:50

' schrieb:Ich suche ein VI, welches den RGB Wert eines bestimmten Pixels auf einem Multimonitorsystem ausgibt. Leider bin ich bis jetzt nicht fündig geworden.
Hat du mal bei .Net gesucht?

Zitat:Kann mir bitte jemand ausführlich beschreiben, wie ich diese DLL einbinde?
Ausführlich beschreiben geht hier nicht. Es gibt diverse Tutorials, die sich allgemein mit DLL-Einbindung befassen.

Zitat:Habe gelesen, dass man eventuell eine "Wrapper.dll" nutzen muss!? Komm diese hier in Frage?
Nein. Auf keinen Fall.

Zitat:Welche Parameter sind richtig?
DLL-Knoten GetDC:
GetDC stellt einen Handle zur Verfügung (öffnet einen Handle), der als Quelle gilt, von der die Pixel geholt werden sollen.
Was ein DC ist (ein HDC ist der Handle auf einen DC) siehe hier. HWND ist der Handle auf ein Fenster, also eigentlich ein Teilbereich des Desktops. WND ist das Fenster. Wird für HWND 0 (null) angegeben, gilt der Desktop (der gesamte Bildschirm) als Quelle.

DLL-Knoten GetPixel:
Benötigt wird die Quelle, von der das Pixel abgefragt werden soll, sowie die Koordinaten des Pixels. Letztere kann man sich mit dem MouseTreiber-VI holen.

DLL-Knoten ReleaseDC:
Was geöffnet wird, muss auch wieder geschlossen werden.

Lv82_img

Ich sehe gerade, in deinem Profil steht LV61. Stimmt das? Sollte das tatsächlich stimmen, hast du ein Problem. LV61 ist hoffnungslos veraltet. Ich häng mal noch ein Bild mit an.


RGB Wert eines Pixels - DeltaBravo - 12.08.2010 16:55

Ich danke Dir,

hab alles Fertig bekommen.

Habe zur Zeit nur eine Evaluierungsversion. 6.1 ist die letzte, die ich voll nutzen kann.

Vielen Dank,
Stephan


RGB Wert eines Pixels - Lucki - 12.08.2010 18:14

Hmm, dumme Frage eines Ahnunglosen: Warum nimmt man da nicht einfach die Funktion "Farbe nach RGB" aus der Palette "numerische Funktionen"?
[attachment=28736]


RGB Wert eines Pixels - IchSelbst - 12.08.2010 18:42

' schrieb:Hmm, dumme Frage eines Ahnunglosen: Warum nimmt man da nicht einfach die Funktion "Farbe nach RGB" aus der Palette "numerische Funktionen"?
Hmm, dumme Antwort eines Ahnunglosen: Zum Zeitpunkt des Schreibens des VIs war mir entfallen, dass ich dieses Element schon mal gesehen habe. Ich weis aber, dass Farben so aufgebaut sind, und habe ohne nachzudenken, also um die Recherche nach einem geeigneten Element zu umgehen, das Zerteil-Element genommen.

Zeitung2


RGB Wert eines Pixels - DeltaBravo - 26.08.2010 21:17

Naabend!

Ich muss nochmal nachhaken.

Bisher wollte ich 24 Pixel auf einem Monitor überwachen und auf einen bestimmten Farbwert checken. Falls eine Übereinstimmung erkannt wird sollte dies über ein USB I/O Kabel ausgeben werden, um damit LEDs zum Leuchten zu bringen. Leider wird gelegentlich durch unglückliche Umstände der Farbwert der zu überwachenden Pixel leicht abgeändert. Es wird also statt einem satten Rot ein verblichenes Rot oder ein Dunkelrot angezeigt.

Ich kann also keinen Vergleich mehr mit einem exakten Farbwert "sattes Rot RGB 255,0,0" durchführen. Ich muss jetzt also checken, ob es sich um irgend ein Rot handelt und dafür einen Vergleichsbereich abchecken. Wie mache ich das am besten?

(Es handelt sich hauptsächlich um Rot, Orange, Gelb und Grüntöne)


Grüße,
Stephan


RGB Wert eines Pixels - GerdW - 27.08.2010 07:37

Hallo Stephan,

du könntest den RGB-Farbwert nach HSV (einfach mal googlen/Wikipedia) umrechnen und dann den Hue in entsprechende Bereiche einteilen und prüfen.
Die Einteilung nach [Rot, Orange, Gelb] könnte aber trotzdem recht diffizil werden...