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 

2D Array als Bilddatei oder Binärdatei speichern



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!

03.08.2010, 13:57 (Dieser Beitrag wurde zuletzt bearbeitet: 03.08.2010 14:15 von rerler.)
Beitrag #1

rerler Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Aug 2010

8.5 mit NI Vision
2010
de


Deutschland
2D Array als Bilddatei oder Binärdatei speichern
Guten Tag zusammen!

Ich habe schon einige Zeit nicht mehr mit LV gearbeitet, und nun habe ich bei einer aktuellen Aufgabenstellung meiner Uni einige Probleme.

Ich umreiße die prinzipielle Aufgabe kurz:

In einer riesigen (200mb) Raw-Datei liegen nach einer Messung Intensitätswerte 3-dimensional vor (512~320~320 für z~x~y-Achsen).
Mit ImageJ wurden aus diesem "Bildstack" (32bit-real big-endian) 320 einzelne Dateien (512~320) exportiert als Text-Image.
Diese werden nun jeweils mit meinem LV-Programm (8.5) eingelesen (siehe im Anhang "einlesen"), das Intensitätsmaximum pro Zeile ermittelt, diese dargestellt und ein Polynomfit (z.B. 3. Grad) angepasst, die eingelesenen Daten werden pro Zeile so verschoben, dass das Polynom in einer geraden Linie ist.
Sinn dabei ist, den Abbildungsfehler (Krümmung der Intensitätsmaxima) aufzuheben.
Da dies für 320 Dateien getan werden muss, wird mit LV der Inhalt eines Ordners gelistet und abgearbeitet.
Das funktioniert alles sehr gut soweitWink

Das Problem kommt nun:

Ich muss diese 320 korrigierten Dateien wieder als ein gesamtes Stack in ImageJ haben, da ich einen individuellen z-Schnitt durch alle Daten brauche.
Leider kann ImageJ normale Text-Images nur einzeln einlesen.
Gebündelt gehen nur Text-Datein oder Sequenzen von Bildern (tiff, png,bmp usw.).
Mit IrfanView kann ich wohl auch binäre Dateien in Bilder umwandeln (auch mehrere auf einmal), so dass ich anschließend ImageJ nutzen könnte.

Ich brauche also die korrigierten Dateien, im Programm als 2d-Array geführt, in schönen binären Dateien oder als Bilder.
Und das scheint nicht zu funktionieren.
Natürlich habe ich die Suche-Funktion schon durch, und nicht nur hier, auch einleitende Hilfs-VI zum Speichern von Binärdaten habe ich betrachtet, das Paket Vision habe ich auch installiert und das Erzeugen von Bilddateien versucht - ich komme trotzdem nicht weiter...


Meine Ideen sind:
- 2D-Array in Binär speichern und dann über weitere Software in ein Bild wandeln (siehe im Anhang "LV_help_bin" und "LV_help_bin2")
- 2D-Array über NI Vision als *.tiff speichern (siehe im Anhang "LV_help_vis")
- aus jedem der 320er Arrays jede Spalte extra speichern und für jede Spalte als neues 2d-Array speichern.
(dies entspricht alle möglichen z-Schnitte... bissel aufwending, da es mit ImageJ individuell geht wenn der Stack erstmal exisiert)

Warum gehen diese Ideen nach den Abbildungen im Anhang nicht?
Die gewonnenen Binärdateien sind unbrauchbar und ich habe das Gefühl bei jeglicher Bildbearbeitung in LV muss man als Ausgangsdatei bereits ein Bild haben, dass dann zerlegt werden kann - oder irre ich mich da?

Hilfreiche Tipps wären (fast) Gold wert für mich, ich hoffe ihr könnt mir helfen...

Das gesamte vi benötigt noch einige subvi's, darum habe ich zunächst nur die Bilder im Anhang.
Falls dies nicht reicht, schiebe ich die vi's nach.
Und im ganzen habe ich 36 von diesen 200mb Raw-Datein, daher ist eine automatisierte Lösung zu bevorzugenWink


Vielen Dank schonmal im Voraus!

Grüße, Robert


Sonstige .rar  2D_Array_to_Pic.rar (Größe: 698,88 KB / Downloads: 466)


*edit: die .txt-Datei im anhang ist ein unkorrigiertes Textimage
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.08.2010, 14:37
Beitrag #2

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
2D Array als Bilddatei oder Binärdatei speichern
Ohne jetzt den RAR Kontainer öffnen zu können...

... was ist ein Textimage?

// Binärdaten als Bildspeichern = B/W Bitmap -> Schaust du halt mal auf der Audio&Graphik Palette. Da kann man bmp's lesen/speichern

Wenn ich es richtig verstanden habe, kommt am Ende doch nur ein verschobenes Intensitätsbild raus. Wo geschieht die Reduzierung auf Binär? Oder sind die Bilder von Anfang an binär = schwarz/weiß ?

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.08.2010, 17:11 (Dieser Beitrag wurde zuletzt bearbeitet: 03.08.2010 17:12 von rerler.)
Beitrag #3

rerler Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Aug 2010

8.5 mit NI Vision
2010
de


Deutschland
2D Array als Bilddatei oder Binärdatei speichern
.rar nicht öffnen, damit habe ich nicht gerechnet, sorry.

Die Intensitätsdaten werden von ImageJ als Textimage exportiert.
Das ist im Prinzip nichts anderes als eine Textdatei, wie in diesem Anhang (Unkorr1.txt).
Auch die durch LV korrigierte Datei ist eine Textdatei (Korr1.txt)
Diese Textdateien bzw. die eingetragenen Werte werden von ImageJ als Intensitäten interpretiert, wenn man ihm beim Datenimport vorgibt, dass dies ein "Textimage" sei.
Dann erstellt er ein schönes Bild daraus, wie im Anhang (Screenshot von Unkorr1 und Korr1 in ImageJ), welches weiter verarbeitet werden kann.
Um allerdings 320 Dateien mit einem Mal in ImageJ einladen zu können, brauche ich die Intensitäten in einer Bilddatei, .tiff oder png oder so, Datentiefe war vor der Korrektur 32 bit - die Reduktion auf 24 bit ist nicht unbedingt wünschenswert, da es sich um Messungen aus dem Kunst- und Kulturgut handelt.

Im LV-vi liegen werden die Daten einer Datei als 2d-Array behandelt, um oben genannte Operationen durchführen zu können.
Diesen Datenstrang (double 64-bit real) kann ich allerdings nicht einfach so an das "write bmp file"-vi anklemmen, da dieses einen String von Image data erwartet.
Diese würde ich aus dem "flatten pixmap"-vi erhalten, aber das erwartet ja eine 24-bit pixmap als input.
Kleiner persönlicher merkwürdiger Erfolg:
Das 2d-array direkt an das "flatten pixmap"-vi am 24-bit Eingang angeklemmt und dann zum "write bmp file"-vi (oder png) gibt mir ein 24-bit bmp-Datei (oder png) in blau ... (24bitblue_Korr1.bmp)
Das hatte vorher nicht so geklappt, allerdings vermute ich, dass ich da andere Fehler verursacht hatte (duplicate path ...), und deshalb dort nicht weiter kam - das hat sich nun erledigt.

Ich häng noch ein Screenshot vom akuellen Stand meines vi's ran (screenie.jpg)

Mein "Problem" hat sich damit fast selbst erledigt, es war wohl zu einfach um den Wald vor lauter ... egal.

Danke für's durchlesen und mitdenken!

Es bleiben noch 3 kleinere Problem(chen):

- Reduktion auf 24-bit ist nicht opitmal, gibt es eine einfache Alternative? Ich habe hier im Forum eine Variante des 48-bit png gesehen, Thementitel "Portable Network Graphics (PNG) Bibliothek" unter http://www.labviewforum.de/Portable-Networ...othek-t833.html, da wird aber vom Einlesen eines Bidles ausgegangen...
- Das Bild aus LV ist derzeit blau - wie stell ich das auf (b/w) um? Da werde ich mich nächste Woche erst drum kümmern können, für schnelle Tipps zur Abkürzung wäre ich dankbar.
- mein "file dialog"-vi möchte jedes Abspeichern der Bilder (320 mal) seperat bestätigt haben - ist eine Automatisierung möglich oder ist dieses vi gar nicht nötig?

Die Dringlichkeit dieser Probleme hat durch die erfolgreiche Erstellung der 24-bit Bilder rapide abgenommen, ich danke euch/Seba sehr für die investierte Zeit, auch wenn es sich fast selbst erledigt hat!

Gruß, Robert


Sonstige .txt  Unkorr1.txt (Größe: 1,09 MB / Downloads: 354)


Sonstige .txt  Korr1.txt (Größe: 480,2 KB / Downloads: 300)

   
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Array dynamisch Speichern Klause 1 4.853 03.08.2015 14:26
Letzter Beitrag: GerdW
  Messdaten in einem Array sammeln/speichern Gesetzt 5 7.103 07.05.2015 15:03
Letzter Beitrag: kwakz
  Array aus Clustern in ein Datei-Format speichern? che-salih 6 7.133 17.11.2013 17:19
Letzter Beitrag: che-salih
  Auslesen aus Binärdatei. Hasenfuss 1 4.901 14.01.2013 19:49
Letzter Beitrag: Lucki
  Messdaten speichern/Array erstellen sanjo 8 11.982 05.07.2012 07:18
Letzter Beitrag: sanjo
  1D Array in Datenbank speichern mrstrom 2 4.309 23.02.2012 14:30
Letzter Beitrag: jg

Gehe zu: