LabVIEWForum.de - Wie ändert man die Größe eines Bildes im Anzeigefenster des Frontpanels

LabVIEWForum.de

Normale Version: Wie ändert man die Größe eines Bildes im Anzeigefenster des Frontpanels
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Leute,

[attachment=59132][attachment=59131]

Kann mir jemand sagen wie ich auf Bild 1 die größe des Bildes in dem Anzeigefenster so verändern kann, damit man das ganze Bild sieht?

Über eine andere Funktion sieht man an der Seite das Tool-kit (Bild 2), dort kann man das Bild auf die entsprechende Größe anpassen, jedoch sehe ich dort meine Bilderkennung nicht. Gibt es dafür eine Lösung?

Danke für alle Hinweise!
Hallo Gellerpa,

Zitat:Kann mir jemand sagen wie ich auf Bild 1 die größe des Bildes in dem Anzeigefenster so verändern kann, damit man das ganze Bild sieht?
Allgemeine Frage, allgemeine Antwort: du musst das Bild passend skalieren.

Zitat:Über eine andere Funktion…
Du verwendest also irgendwelche Anzeigeelemente und irgendwelche unbenannten Funktionen und ärgerst dich, dass dein VI nicht das macht, was du gern hättest.
Und wir sollen raten, was du da verwendest und wie du etwas programmiert hast?
Glas2

Zitat:Gibt es dafür eine Lösung?
Sicherlich. Sobald wir dein VI begutachten konnten…
Okay sorry, dachte dass es eine einfache Art gibt die Bildgröße im frontpanel zu ändern, nur finde ich diese nicht.

Anders Formuliert: Das Bild ist mit 1312x1459 im Ordner gespeichert. Über den Ausgabebildschirm "Vision -> Image Display" gibt es links von der Ausgabe eine toolbox (siehe Bild 2 des ersten Beitrags).

[attachment=59138]
(mein VI)

Der Ausgabebildschirm soll aber nach einer Bilderkennung angezeigt werden (siehe Image out vom Vision Assistent).
Dieser ist wie folgt benannt:

[attachment=59139]

Bei diesem Bildschirm fehlt die toolbox aber.

Ich möchte ohne mein Bild als Datei zu verändern, auf eine Benutzerdefinierte Größe im Frontpanel bringen.

Über die Toolbox kann man einfach aus dem heraus zoomen um die gewünschte Größe zu erreichen, da diese fehlt frage ich ob es eine andere Lösung gibt außer das Bild als Datei vorher auf die gewünschten Pixel zu brechen.
Hallo Gellerpa,

Zitat:(mein VI)
In deinem VI verwendest du einmal einen 2DPictureIndicator und einmal eine IMAQ-Bildanzeige.

Beim 2DPictureIndicator gibt es eine Propertynode, mit der man die Bildskalierung vorgeben kann.
Da du die Originalgröße kennst bzw. mit dem Bildeinlesen auswerten kannst und auch weißt, wie groß die Anzeige/der Indicator ist, kannst du mit simpler Mathematik den nötigen Skalierfaktor ausrechnen!

Mit IMAQ kenne ich mich nicht aus, da musst du auf andere Antworten warten. Ich könnte mir vorstellen, dass es auch dort eine Skalierfunktion gibt…

Zu deinem VI:
- Warum hast du eine so unsagbar kleine Fontsize für die Beschriftung der Terminals verwendet? Da kann man doch kein einziges Label lesen…
- Wieso wird ein und dieselbe Operation 6mal parallel ausgeführt statt in einer Schleife?
- Wieso wird das Ergebnis dieser Operationen in einen Cluster gebündelt, der dann sofort in ein Array umgewandelt wird? Warum nicht BuildArray verwenden?
Okay, danke dir trotzdem.

naja ich Arbeite erst seit 2 Monate sporadisch mit Labview, daher fehlen mir wohl auch einfache Kenntnisse.

Zitat:Zu deinem VI:
- Warum hast du eine so unsagbar kleine Fontsize für die Beschriftung der Terminals verwendet? Da kann man doch kein einziges Label lesen…
- Wieso wird ein und dieselbe Operation 6mal parallel ausgeführt statt in einer Schleife?
- Wieso wird das Ergebnis dieser Operationen in einen Cluster gebündelt, der dann sofort in ein Array umgewandelt wird? Warum nicht BuildArray verwenden?

1. Das Täuscht nur wegen dem Bild, der Anzeigebildschirm ist 25 Zoll groß Smile
2. Weil der Vision Assistent ein Bild auf vorhandene Platinen prüft (anhand von Kanten) und es gibt sechs Steckplätze, ist einer belegt bekommt er eine 1, ist frei eine 0.
3. Auf dem Frontpanel soll ein Array sein in dem man sehen kann welcher Steckplatz frei ist. Bsp: nur der zweite Steckplatz ist belegt. Array gibt ( 0 / 1 / 0 / 0 / 0 / 0 ) aus.

Hast du für eines der genannten Dinge einfachere Lösungen? Verbesserungen nehme ich gerne an Construction
Hallo Gellerpa,

Zitat:fehlen mir wohl auch einfache Kenntnisse.
Da kannst du ja jetzt die Links in meiner Signatur durcharbeiten… Big Grin

Zitat:1. Das Täuscht nur wegen dem Bild, der Anzeigebildschirm ist 25 Zoll groß
Ein Icon ist in LabVIEW 32 38 Pixel groß, die Schrift darüber gefühlte 3 Pixel. Das wird auch auf einem großen Bildschirm nicht besser lesbar!
Tipp: Icon-Anzeige für die Terminals in den LabVIEW-Optionen ausschalten, das spart viel mehr Platz!

Zitat:2. Weil der Vision Assistent ein Bild auf vorhandene Platinen prüft (anhand von Kanten) und es gibt sechs Steckplätze, ist einer belegt bekommt er eine 1, ist frei eine 0.
Das war nicht der Grund meines Kommentars: du führst ein und dieselbe Operation (Unbundle, Compare, BoolTo0/1) 6fach aus.
Alles, was man mehrfach ausführt, ist für eine (autoindizierende) Schleife prädestiniert!

Zitat:3. Auf dem Frontpanel soll ein Array sein in dem man sehen kann welcher Steckplatz frei ist. Bsp: nur der zweite Steckplatz ist belegt. Array gibt ( 0 / 1 / 0 / 0 / 0 / 0 ) aus.
Auch hier hast du nicht verstanden, was ich sagen will: die Array-Anzeige ist toll und kann bleiben!
Warum musst du einen Cluster erstellen, wenn du daraus sofort ein Array machst? Warum erstellst du dann nicht sofort ein Array - mit BuildArray, wie oben erwähnt???
Anderer Vorschlag:
- Zeige den Cluster direkt an, statt daraus ein Array zu machen. Vorteil: du kannst die einzelnen Elemente im Cluster individuell beschriften!
- Arbeite direkt mit den boolschen Werten vom Vergleich. Warum erst noch Zahlenwerte daraus machen?

Zitat:Hast du für eines der genannten Dinge einfachere Lösungen? Verbesserungen nehme ich gerne an
Wenn du statt Bildern mal ein VI anhängen würdest, könnte man sowas direkt zeigen. So musst du halt mit Textbeschreibungen leben…
Danke für die Tipps! Ich werde ihnen aufjedenfall mal nachgehen.

Zitat:Das war nicht der Grund meines Kommentars: du führst ein und dieselbe Operation (Unbundle, Compare, BoolTo0/1) 6fach aus.
Alles, was man mehrfach ausführt, ist für eine (autoindizierende) Schleife prädestiniert!

vielleicht reden wir aneinander vorbei? oder ich stehe gerade gewaltig auf dem Schlauch Big Grin
Jede Platine hat einen individuellen Platz. Ich möchte dadruch herausfinden ob der erste Platz belegt ist, das wird im ersten Teil geprüft (Straight Edge Find Edge 1). Dann wird geprüft ob der zweite frei ist (straight edge find edge 2) .... bis zum letzten Steckplatz, deshalb muss es doch 6- mal geprüft werden, oder sehe ich das falsch? Sind alle Steckplätze vergeben soll der Roboter nichts tun.

Anders: wenn vorher in der Bestückung keine Platine gefunden wird, soll der Roboter auch still stehen. (Das jetzige VI ist noch auf diese vorraussetzung basiert -> wenn keine Platine vorhanden ist, starte nicht). Das muss ich noch ändern, vielleicht ist das auch noch eine Verwirrung Big Grin

Ich habe leider an meinem privaten PC nicht das gesamte VI, aber ich versuch es trotzdem mal, danke vielmals!
Hallo Gellerpa,

Zitat:vielleicht reden wir aneinander vorbei? oder ich stehe gerade gewaltig auf dem Schlauch
Den Eindruck habe ich auch… Big Grin

Ich habe mal deinen Code (schon beispielhaft vereinfacht) nachgestellt und meinen Vorschlag, mit einer Schleife zu arbeiten, daneben gestellt:
[attachment=59140]
Es geht mir nicht darum, wieviele Platinen du irgendwo anschauen willst, sondern nur um möglichst einfachen, gut wartbaren und skalierbaren Code in deinem VI…
Zitat:Ich habe mal deinen Code (schon beispielhaft vereinfacht) nachgestellt und meinen Vorschlag, mit einer Schleife zu arbeiten, daneben gestellt:

jetzt habe ich verstanden an welcher Stelle Big Grin dachte du meintest warum ich das sechs mal ausgebe Confused

ja, das ist wirklich vereinfacht!

andere Frage: wäre es möglich statt den 1 und 0 auch led´s leuchten zu lassen die abhängig davon sind? also am schluss der array ausgabe?

Edit: Habe mal mein VI nachgestellt
[attachment=59141]
Hallo gellerpa,

Ja klar geht das!
Wie ich oben schon schrieb: arbeite doch direkt mit einem Array of bool, statt die boolschen Werte erst wieder in Zahlen umzuwandeln...
Seiten: 1 2
Referenz-URLs