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 

kamerabild in c-code bearbeiten



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!

24.09.2008, 14:46
Beitrag #1

billabong Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2008

8.2.1, 8.5
-
de

52064
Deutschland
kamerabild in c-code bearbeiten
hallo,
habe die aufgabe ein kleines vi zu machen, das einfach nur ein bild aufnimmt und in einer externen c datei dieses bild invertiert ( oder sonstwas) und wieder zurückgibt.. zum lernen quasi, bin noch neuling in LabVIEW.. habe eben das tutorial von hier für das einbinden von dll´s gemacht (addierer) . hat schonmal funktioniert.
nun will ich das bild in die dll/ über die dll??Smileübergeben und eben mit meinem c prog das bild bearbeiten. kann man das bild sonst direkt als array übergeben?
verstehe das bei LabVIEW nämlich noch nich genau, wie sachen übergeben werden.
nach dem grab-baustein kommt ja meine image-anzeige, nur was kommt eig aus dem grab raus? die image-anzeige, gibt mir nen bild aus( wo find ich die überhaupt?? war schon in dem beispiel drin..) und wenn ich ne string-anzeige dran haue dann bekomm ich cam0 ausgegeben (is ne firewire cam). also was kommt jetz in c an?? bzw was muss ich auswählen wenn ich mir den baustein für ext. bibliotheken konfiguriere..?

hab keine ahnung, ob ihr ansatzweise versteht was ich meine, aber ich lass es mal so stehenSmile
ansonsten erklär ich es gerne nochmal..

vielen dank soweit schon mal
andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.09.2008, 16:24
Beitrag #2

billabong Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2008

8.2.1, 8.5
-
de

52064
Deutschland
kamerabild in c-code bearbeiten
bin jetzt soweit, dass ich das bild in nen array zerlegt hab und dann übergebe. hab zwar noch keine ahnung wie ich das wieder zu nem bild mache, aber najaSmile

wenn ich jetzt meine ein/ausgänge in dem knoten für ext bibs konfiguriere, kann ich wenn ich array auswähle diese sachen wählen : 1. array-datenzeiger 2. array handle 3. zeiger auf array-handle..

wenn ich das 1. wähle und mir 2 dimensionen auswähle, funktioniert das schon fast. kann dann aber nur die 1. zeile bearbeiten, LabVIEW erzeugt nämlich diesen c-code : long invert(long bild[], long ausg[]) . bekomme in LabVIEW aber wieder nen 2d array raus.

wie komme ich an die anderen zeilen?
wenn ich array-handle auswähle läuft gar nix, bekomm "__declspec(dllexport) long invert(long bild[], long ausg[]); " dann nich kompiliert..


vll kann mir ja jetz jemand helfenSmile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.09.2008, 18:35 (Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2008 21:08 von jg.)
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
kamerabild in c-code bearbeiten
' schrieb:bin jetzt soweit, dass ich das bild in nen array zerlegt hab und dann übergebe. hab zwar noch keine ahnung wie ich das wieder zu nem bild mache, aber najaSmile
Also zu einem IMAQ-Bild bekommst du es nicht mehr (oder nur über Tricks). Denn die Funktionen IMAQ ArrayToImage sind nur im Vision-Paket dabei. Einziger Trick, der mir einfällt: Abspeichern in der DLL als z.B. BMP und dann wieder einlesen. Du kannst ein Array aber zu einem Picture umwandeln. Dazu musst du dich mal in der Graphics&Sound Palette umschauen:
   

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.09.2008, 07:19 (Dieser Beitrag wurde zuletzt bearbeitet: 26.09.2008 16:34 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
kamerabild in c-code bearbeiten
' schrieb:wenn ich das 1. wähle und mir 2 dimensionen auswähle, funktioniert das schon fast. kann dann aber nur die 1. zeile bearbeiten, LabVIEW erzeugt nämlich diesen c-code : long invert(long bild[], long ausg[]) . bekomme in LabVIEW aber wieder nen 2d array raus.

wie komme ich an die anderen zeilen?
wenn ich array-handle auswähle läuft gar nix, bekomm "__declspec(dllexport) long invert(long bild[], long ausg[]); " dann nich kompiliert..
Nachtrag zu gestern, ich hab mal in meinen Studien-Zeit-Kenntnissen von C rumgekramt:
Wär mir doch völlig egal, wenn die Definition innerhalb C nur ein 1D-Array erwartet. Schließlich wird nur der Zeiger auf das erste Array-Element übergeben, und dann folgen alle weiteren Element schön brav hintereinander im Speicher (auch bei einem 2D-Array). Somit kommst du über Zeigerarithmetik in C hervorragend an alle Elemente dran, auch wenn's in LabVIEW als 2D-Array definiert ist, also Bsp:

Array 2D in LabVIEW hat Größe (m,n). Du übergibst das als Pointer to Array, und zusätzlich die Größen m & n.

Dann kommst du in C an das Element (i,j) so dran:

Code:
*(array+i*m+j)
oder
*array[i*m+j]

Gruß, Jens

EDIT: Falls ein C-Profi feststellt, dass ich Schmarrn erzählt habe, bitte ich um Korrektur!

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.09.2008, 13:51
Beitrag #5

billabong Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2008

8.2.1, 8.5
-
de

52064
Deutschland
kamerabild in c-code bearbeiten
jau, super, hat funktioniert. vielen dank. musste dann nur noch nen pixmap erstellen und so ne komische farbpalette, die du jemand anderem schon mal erklärt hattest.. also vielen dank auch dafürSmile hätt ich sont auch nich hinbekommen, vernünftige farben wieder herzustellen, kann mit der hilfe von LabVIEW meistens absolut nix anfangen..:)danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.10.2008, 08:35
Beitrag #6

billabong Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2008

8.2.1, 8.5
-
de

52064
Deutschland
kamerabild in c-code bearbeiten
so, nächstes problemSmile

habe bis jetzt immer nur ein bild gemacht und es invertiert. sobald ich aber ne while schleife drum packe, sagt er mir, dass ein ausnahmefehler in meinem code aufgetreten ist.. vermutlich irgendwas mitm speicher??

in dem bild ist jetzt keine schleife drin, aber naja, denkt euch eineSmile

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.10.2008, 09:17
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
kamerabild in c-code bearbeiten
' schrieb:so, nächstes problemSmile

habe bis jetzt immer nur ein bild gemacht und es invertiert. sobald ich aber ne while schleife drum packe, sagt er mir, dass ein ausnahmefehler in meinem code aufgetreten ist.. vermutlich irgendwas mitm speicher??

in dem bild ist jetzt keine schleife drin, aber naja, denkt euch eineSmile

[attachment=42074:while.JPG]
Es wäre eben gerade wichtig, den Screenshot MIT For-Schleife zu sehen. Mglw. hast du nicht aufgepasst und ein AutoIndexing zugelassen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.10.2008, 09:35
Beitrag #8

billabong Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2008

8.2.1, 8.5
-
de

52064
Deutschland
kamerabild in c-code bearbeiten
autoindexing?Smile

hier dann mal mit schleife, eben einfach einmal rumSmile

   



achso, hab dann mal noch nen bisschen rumprobiert und einfach in den knoten der ext. bibl. noch ne weitere variable eingefügt. einfach nur nen zeiger auf wert.. da meckert der aber direkt beim kompilieren obwohl ich nur *a=*a; mache..
kann man die nicht mehr verändern oder mach ich mal wieder nur nen dummen fehler?

danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.10.2008, 10:31
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
kamerabild in c-code bearbeiten
' schrieb:autoindexing?Smile

hier dann mal mit schleife, eben einfach einmal rumSmile
Wo ist jetzt ne FOR-Schleife? Ich sehe keine in deinem BD-Screenshot?

Oder meinst du in C?! Davon ist jetzt auch nichts im Screenshot zu sehen!

AutoIndexing bezieht sich auf LV.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.10.2008, 11:45
Beitrag #10

billabong Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2008

8.2.1, 8.5
-
de

52064
Deutschland
kamerabild in c-code bearbeiten
habe eigentlich nie was von einer for-schleife erzählt, damit hast du angefangenSmile
in dem c-code ist eine ja, der ist immer noch wie oben in dem bild.

aber das problem ist, dass wenn ich in LabVIEW die while-schleife rein mache, wie in dem 2.bild, dann kommt eben die fehlermeldung in LabVIEW, dass ein ausnahmefehler aufgetreten ist.. passiert beim 2. durchlauf.. daher der lange timeout..

hab mir mal autoindexing angeguckt. glaub nich, dass das hier das problem ist oder?

hoffe es ist jetzt klarer geworden.

hier ansonsten nochmal mit fehlermeldung

   

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


Gehe zu: