Guten Abend,
ich möchte für ein Projekt in regelmäßigen Abständen mit einer Webcam ein Foto aufnehmen. Die Programmiersprache ist mir egal. Am besten mit Source-Code.
Danke im Voraus
MfG
Ninron
Guten Abend,
ich möchte für ein Projekt in regelmäßigen Abständen mit einer Webcam ein Foto aufnehmen. Die Programmiersprache ist mir egal. Am besten mit Source-Code.
Danke im Voraus
MfG
Ninron
ich möchte für ein Projekt in regelmäßigen Abständen mit einer
Webcam ein Foto aufnehmen. Die Programmiersprache ist mir
egal. Am besten mit Source-Code.
Hallo Ninron,
irgendwie stellst du dir das zu einfach vor.
Was nützt dir der Source-Code wenn du ihn nicht ausführen, kompilieren kannst?
Also mußt du die Entwicklungsumgebung des Programms kaufen für die er geschrieben wurde.
Fertiger Code, der genau das macht was du speziell willst ist ggfs. aufwendig.
Das sprengt hier den Rahmen von w-w-w.
Und, selbst wenn du perfekten Sourcecode hier bekämest, für eine Programmiersprache, du die dir dann kaufst, ob du das dann zum „laufen“ bringst, bezweifel ich.
Bitteschön, nachstehend ist ein schöner Code für Vb, klappt auch in Vba, der macht zwar etwas anderes, der startet ein Fremdprogramm und wartet solange bis dieses fertig ist.
Angenommen, du hast dir jetzt bei ebay für 400 Euros VB6.0 gekauft, kannst du mit dem , vom API-Kram abgesehen, recht kleinen Code überhaupt irgendwas anfangen/ändern usw.?
Gruß
Reinhard
Option Explicit
Private Type STARTUPINFO
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Type PROCESS\_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Const INFINITE = -1&
Private Declare Function CreateProcessA Lib "kernel32" (ByVal lpApplicationName As Long, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS\_INFORMATION) As Long
Private Const NORMAL\_PRIORITY\_CLASS = &H20&
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Sub ShellAndWait(ByVal Filename As String)
Dim RetVal As Long
Dim proc As PROCESS\_INFORMATION
Dim StartInf As STARTUPINFO
StartInf.cb = Len(StartInf)
RetVal = CreateProcessA(0&, Filename, 0&, 0&, 1&, NORMAL\_PRIORITY\_CLASS, 0&, 0&, StartInf, proc)
RetVal = WaitForSingleObject(proc.hProcess, INFINITE)
RetVal = CloseHandle(proc.hProcess)
End Sub
Sub Test()
MsgBox "Bitte editieren Sie die Datei."
ShellAndWait "C:\Windows\Notepad.exe C:\Autoexec.bat"
MsgBox "Die Änderungen der Datei wurden erfolgreich übernommen."
End Sub
Hallo,
vielen Dank schonmal. Ja, kann sein, dass ich mir das zu einfach vorstelle, aber da ich sehr viel Erfahrung mit Java habe und es mir allgemein nicht allzu schwer fällt mich in neue Sprachen einzuarbeiten, denke ich, dass ich das hinbekomme. Ich habe nur leider bei meiner Recherche über Google nichts gefunden, und da ich auch weiß, dass man das bei Java mit anderen APIs machen muss, suche ich eben nach einer anderen Sprache.
MfG
Ninron
Hallo.
Ich würde dafür Processing verwenden, da hast du kurzen und verständlichen Code.
Zu deinem Problem ein Beispiel: http://processing.org/learning/library/gettingstarte…
Liebe Grüße. Alex
Vielen Dank für diese Idee, nur leider brauch man dafür extra Treiber und ich will nicht für mein Projekt auf jedem PC erstmal die Treiber installieren…
Ebenso wäre es genial, falls jemand ein Programm kennt, oder mir erstellen könnte, das alle 5sek ein Bild von der Webcam aufnimmt und in ein bestimmten Ordner speichert. Dabei soll das Programm allerdings keine Fenster oder ähnliches haben/öffnen.
Wäre perfekt, wenn jemand soetwas kennt!
MfG
Ninron
Hallo.
Hatte jetzt mal Zeit dir ein kleines Programm zu erstellen.
Ist in C geschrieben und verwendet OpenCV http://opencv.willowgarage.com/wiki/. Ich hab dir die exe mit den notwendigen opencv dlls und dem Quellcode gezipped und auf http://rapidshare.com/files/435232343/webcam_capture… hochgeladen. Zur Verwendung siehe readme.txt!
Den sourcecode schreibe ich hier hinein falls jemand daran interessiert ist.
#include
#include
#include
#include //Sleep()
void saveImage(char \*path, char \*name, int nr, IplImage \*image) {
char filename[256];
sprintf(filename,"%s\\%s%d.JPG", path, name, nr);
printf("File saved as: %s\n",filename);
cvSaveImage(filename, image);
}
int mainLoop(char \*path, char \*filename){
int imageNr = 0;
IplImage \*image;
CvCapture\* capture = NULL;
// capture from camera 0
capture = cvCaptureFromCAM(0);
if( !capture )
{
fprintf(stderr,"Could not initialize capturing...\n");
return -1;
}
image = cvQueryFrame(capture);
if( !image ){
fprintf(stderr,"Could not retrieve first frame...\n");
return -1;
}
while(true){
// get one frame from the camera
image = cvQueryFrame(capture);
saveImage(path, filename, imageNr, image);
imageNr++;
Sleep(5000);
}
// clean-up
cvReleaseCapture(&capture);
cvDestroyAllWindows();
return 0;
}
int main(int argc, char\*\* argv){
if(argc!=3) {
printf("Usage: %s path filename\n", argv[0]);
return 1;
}
return mainLoop(argv[1],argv[2]);
}
Liebe Grüße.
Alex
Guten Tag,
Hallo.
Hatte jetzt mal Zeit dir ein kleines Programm zu erstellen.
Vielen, vielen Dank!!