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 

Null für negative Werte in U16-Arrays



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!

08.12.2011, 20:02
Beitrag #1

labrat Offline
LVF-Grünschnabel
*


Beiträge: 30
Registriert seit: Oct 2011

2011 DS2
2008
DE



Null für negative Werte in U16-Arrays
Hallo,

Ich nehme mit einer Kamera 16bit-Bilder auf, in vorzeichenlose 2D-Arrays (U16) umgewandelt werden. Währenddessen möchte ich ein Hintergrundbild - also ein zweites Array (U16) - abziehen. Nun kann es vorkommen, dass bei der Subtraktion der Array negative Werte entstehen. Da der Datentyp ein vorzeichenloses Wort ist, wird eine -1 beispielsweise als 65535 angezeigt. Ich möchte allerdings, dass negative Werte als Null dargestellt werden.

Natürlich kann ich im Array jeden einzelnen Wert auslesen und abfragen, ob dieser negativ ist und anschließend Null setzen. Dies hab ich bereits ausprobiert. Das Problem dabei ist, dass die Arrays mit 320x256 Werten recht groß sind und mir bei dieser Methode die Framerate in den Keller geht.

Gibt es eine (zeitlich) SCHNELLE Möglichkeit bei U16-Arrays die negative Werte als Null angezeigen zu lassen?

Vielen Dank im voraus

labrat
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.12.2011, 22:13
Beitrag #2

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
RE: Null für negative Werte in U16-Arrays
Hier wäre mal eine Umrechnung ohne Vergleich. Ich glaube aber nicht, dass sie performanter als der Vergleich ist. Wie hast Du denn den Vergleich programmiert?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2011, 23:59 (Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2011 00:00 von Lucki.)
Beitrag #3

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: Null für negative Werte in U16-Arrays
Einzelne Werte abfragen, ob sie negativ sind, funktioniert nicht - das Ergebnis einer Operation mit Ausgangswert U16 ist definitiosgemäß immer positiv. Wegen der Performance möchtest du nicht jeden einzelnen Wert vergleichen. Das musst du auch nicht - viele LV-Operationen sind polymorph und kommen auch mit 2D-Array zurecht. Mit der Vorarbeit von unicorn sähe das dann so aus (Wobei ich mir jetzt nicht sicher bin, ob es noch etwas einfacher geht):
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 11:24
Beitrag #4

labrat Offline
LVF-Grünschnabel
*


Beiträge: 30
Registriert seit: Oct 2011

2011 DS2
2008
DE



RE: Null für negative Werte in U16-Arrays
Erstmal vielen Dank!

Im Prinzip hab ich es so änlich wie in Lösungsvorschlag Nr.1 probiert. Eine for-Schleife in einer for-Schleife und dann eine True/False Abfrage für jedes Element ob negativ oder nicht. Damit ein Wert überhaupt negativ werden kann habe ich beide Arrays zuvor in I16 umgewandelt und anschließend wieder in U16.

Lösungsvorschlag Nr.2 ist natürlich sehr elegant mit den boolschen Array. Leider sinkt aber auch hier - zu meiner Verwunderung - die Framerate stark ab.

Mittlerweile habe ich allerdings herausgefunden, dass man Bilder mit dem IMAQ_Subtract.vi direkt subtrahieren kann. Also ohne dass ich die Bilder zuerst in Arrays umwandle. Dabei wird dann automatisch eine Null für negative Werte angenommen. Ob die Framerate dann hoch genug ist muss ich noch testen. Aber das wäre wohl eher etwas für das VISION forum.

Jedenfalls nochmal vielen Dank für die Mühe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Negative Werte - Zeitstempel Konstante im XML-String BlackEagle 2 5.782 18.12.2019 15:30
Letzter Beitrag: BlackEagle
  Auswahl eines Arrays anhand des Wertes eines zweiten Arrays treffen alan 2 4.637 19.02.2015 16:12
Letzter Beitrag: alan
  Negative Werte in Enum Kiesch 6 6.616 27.11.2014 11:54
Letzter Beitrag: Kiesch
Bug Arrays... immer wieder Arrays nurso 6 7.587 15.08.2014 10:39
Letzter Beitrag: Lucki
  Keithley darf nicht auf Null springen! Labji 2 3.313 09.05.2014 07:57
Letzter Beitrag: Y-P
  Signal auf Null setzen DeMasch 2 6.304 15.07.2011 19:48
Letzter Beitrag: DeMasch

Gehe zu: