PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit C an den Speicher herrankommen



Nigthlord
01.04.2008, 16:12
Habe ein sehr sehr wichtiges project am laufen und weiss nicht mehr weiter.
Ich muss in JAVA ein programm schreiben indem ich ein bild (eine Linie) einlesen und verarbeiten muss.
Da die linie im Virtualen speicher ist weiss ich nicht wie ich ihn auslesen soll.
Anscheined kann JAVA nicht eine Speicherzelle ablese die von einem anderen benutzt wird.

C soll dass koennen.

Wie bekomme ich dass den hin mit C, habe echt gahr keine Ahnung wie das gehen soll.


Kann mir einer weiterhelfen.

Ich arbeite mit deiner Framegrabber Grablink express PCIe Carte von euresys und mit dem MultiCam Driver die es bei euresys.com herunter zu laden gibt.

In den Helps gibt es Sampels wie und wass zu machen ist , aber verstehe gar nichts davon.


Kennt sich einer damit aus? [-o< [-o< [-o<


Bin echt am verzweiffeln. ](*,) ](*,) ](*,)






Euer Nightlord

fumir
02.04.2008, 15:53
java soll maschinenunabhängig sein. daher ists prinzipiell schwierig bis unmöglich aus java direkt auf irgendwelchen speicher zuzugreifen. vermutlich wirds mit reinem java nicht funktionieren.

schick mir mal die samples (oder nen passenden weblink) und ein paar mehr infos, dann schau ich mir das mal unverbindlich an.

Nigthlord
02.04.2008, 16:03
Die Sampels sind beim programm im Help verzeichniss.


Leider kann ich euch nicht alle drauflegen, da ich sonst noch probleme bekomme.

Um nor mehr informationen zu beckommen geht auf http://www.euresys.com/Products/MultiCam.asp
und tragt euch ein.
Dann koennt Ihr den MultiCam Driver Full herrunterladen wo alles drinn ist.

Felix G
02.04.2008, 22:25
Also ich kann mir nicht vorstellen, daß man an das Kamerabild nur über einen Direktzugriff auf den entsprechenden Speicherbereich ran kommt.

Der Treiber muss eigentlich entsprechende Zugriffsfunktionen bereitstellen, die dir das abnehmen.

fumir
06.04.2008, 20:37
ich würde auch sagen, dass du eben die möglichkeiten des MultiCam treibers nutzen mußt.
also:
- ein c++ programm (c würd ich lieber vermeiden, da die MultiCam bibliothek für ne objektorientierte umgebung konzipiert zu sein scheint) schreiben, das die daten über den MultiCam treiber liest und geeignet zwischenspeichert (sofern nötig)
- ein java prgramm schreiben, welches eine funktion des c++ programms aufruft, um die daten zu bekommen.

ich seh da folgende probleme/anforderungen:

- da es den MultiCam Treiber nicht für java gibt, kommst du um ein c/c++ programm nicht drum rum.
- der MultiCam Treiber scheint auch möglichkeiten zum anzeigen/bearbeiten der daten zu enthalten (vermutung aufgrund des flüchtigen blicks auf deine beispieldateien)
- damit stellt sich die frage, welchen vorteil es letztlich noch hat, überhaupt ein java programm zu verwenden? für rechenintensive bilddatenverarbeitung ist das eh die falsche sprache. ich würde die eigentliche bildverarbeitung komplett in c++ unter verwendung des MultiCam treibers schreiben, und java nur für das grafische frontend verwenden (dafür ist java gut)
- um den MultiCam treiber nutzen zu können, wirst du nicht drumrum kommen, die zweifellos sehr umfangreiche dokumentation ausreichend zu konsultieren. das hört sich nach ner menge arbeit an.
- die kooperation von java und c++ ist zwar möglich und im java konzept vorgesehen, aber wenn man das noch nie gemacht hat, auch mit arbeit (aneignen von knowhow) verbunden
- den MultiCam treiber zu umgehen wäre vermutlich noch wesentlich aufwendiger, als sich in die dokumentation des treibers einzuarbeiten

- alles in allem ist das wohl keine sache, die man mal eben in ein paar stunden dahinprogrammieren kann!

ps. mich auf der seite zu registrieren ist mir unangenehm, das thema scheint mir auch zu umfangreich, um da noch ernsthaft unentgeltliche hilfe anbieten zu können. vermutlich wirst du professionelle hilfe in anspruch nehmen müssen, wenn du nicht viel zeit und entsprechende fähigkeiten zur verfügung hast.

robo junior
06.04.2008, 20:50
Hi,

Es gibt von Sun die Java Media Framework API (JMF). Damit kann man z.B. den Videostream einer Webcam aufzeichnen, Bilder herausschneiden etc.
In wie weit das mit deiner Kamera/Grabber Kombination funktioniert, kann ich dir nicht sagen, aber das kannst du ja mal ausprobieren.
http://java.sun.com/products/java-media/jmf/

Sind auch ein paar Programme und Codebeispiele verfügbar. dann kannst du ja ganz einfach mal mit JMF Registry und JMStudio (zwei im Download enthaltene Programme) testen ob du an den Video Stream dran kommst. Dann sollte auch das zerlegen in Bilder und auslesen von einzelnen Pixeln kein Problem mehr sein.

v.g.
Andreas

Nigthlord
11.04.2008, 08:09
Danke an alle, ech tolle arbeit von euch.
MultiCAm zu umgehen ist kein problem da die leute von Euresys ein C++ programm mitliefern die das bild auch ohne Multicam driver darstellen und es geht sogear ganz gut, man kann nur nicht zoomen und somit nicht die ganze breite auf den schirm darstellen.


Das Problem wass ich jetzt habe ist das ich in diesem C++ programm das bild erfasst wird und am schirm angezeigt wird. aber ich komme nicht an das bild selbst ran!!

Laut meinen informationen gibt es eine variable namens " m_Image Buffer " in der ein Pointer gespeichert ist der auf die adresse des bildes zeigt.
NUR ICH WEISS NICHT WIE MAN DEN POINTER KOMMT UND DANN AUCH NICHT WIE MIT DEM POINTER AN DIE ADRESSE MIT DEM BILD.


Bitte, wenn jemand auch nur eine kleine ahnung hat wie ich dass machen soll, dann bitte her damit sonst komme ich einfach nicht weiter und fall womoeglich noch durch!!



Euer Nightlord