Forum: PC Hard- und Software Logitech Webcam Ansteuerung


von Theo B. (theozh)


Lesenswert?

Hallo zusammen,

ich habe eine alte Logitech "Logicool" Webcam (P/N 861202-0116, PID 
CE64003). Diese ist für meine Zwecke ideal
1. weil sie ohne Gehäuse sehr kompakt ist
2. weil ich Objekte bis ca. <5 cm vor der Linse scharfstellen kann

Diese Kamera wollte ich nun in eigene Programme einbinden.

Es gibt von Logitech und anderen umfangreiche Software (z.T. >100 MB) 
mit allerlei Funktionen, die ich nicht brauche. An Einbinden oder 
Zugriff auf Einstellungen durch eigene Programme ist da nicht wohl zu 
denken.

Gibt es für diese Kamera DLLs oder universelle DLLs oder kennt jemand 
eine einfache Software, die man einbinden kann?
Es gibt so vieles im Netz, wobei mir das meiste unbrauchbar erscheint, 
und ich nicht alles ausprobieren kann.

Ich möchte lediglich per eigenen Programm ausgelöst Einzelbilder 
aufnehmen und evtl. Belichtungszeit und Kontrast einstellen und die 
Bilder lokal abspeichern. Keine Webpage, Livecam, FTP, Facebook oder 
sonstiger Firlefanz...

Oder gibt es evtl. andere Kameras mit einbindbarer Software (und 
Preisklasse <<50 EUR), die ähnlich kompakt und auf geringe Distanz 
scharfstellen können?
Wer kann da etwas empfehlen?

von Markus M. (mark_m)


Lesenswert?

Versuche es mal mit Processing.

Mit ein paar Zeilen Code hast Du dein Ziel erreicht.

1
import processing.video.*;
2
3
Capture cam;
4
5
void setup() {
6
  size(640, 480);
7
8
  String[] cameras = Capture.list();
9
  
10
  if (cameras.length == 0) {
11
    println("There are no cameras available for capture.");
12
    exit();
13
  } else {
14
    println("Available cameras:");
15
    for (int i = 0; i < cameras.length; i++) {
16
      println(cameras[i]);
17
    }
18
    
19
    // The camera can be initialized directly using an 
20
    // element from the array returned by list():
21
    cam = new Capture(this, cameras[0]);
22
    cam.start();     
23
  }      
24
}
25
26
void draw() {
27
  if (cam.available() == true) {
28
    cam.read();
29
  }
30
  image(cam, 0, 0);
31
  // The following does the same, and is faster when just drawing the image
32
  // without any additional resizing, transformations, or tint.
33
  //set(0, 0, cam);
34
}

Quelle:
http://processing.org/reference/libraries/video/index.html

von Theo B. (theozh)


Lesenswert?

Danke für den Tipp.

Hab's mal gestartet ohne mich lange einzulesen.

Es kommt eine Fehlermeldung:

The constructor Capture(sketch_may16a, String) is undefined.

Soll das heißen: keine Kamera gefunden? Oder nicht initialisiert?
Vielleicht hat er die Logitech nicht erkannt? Es gibt aber noch eine 
eingebaute Kamera? Auch nicht erkannt?

von Markus M. (mark_m)


Lesenswert?

Bei mir funktioniert es mit jeder Kamera, die ich anstecke. Auch mit der 
ganz alten Quickcam.

Welche Processing Version hast Du installiert? 2.0 Beta 8 solltest Du 
haben.

Schau mal bei den USB Geräten nach ob die Kammera als USB Gerät erkannt 
wird.

Grüsse

von Jojo (Gast)


Lesenswert?

Hallo,
läuft auch mit der V2.0b3 problemlos.

von Markus M. (mark_m)


Lesenswert?

Richtig. Ich wollte nur vermeiden, dass die Version 1.5 verwendet wird. 
Die Video API hat sich zwischen 1.5 und 2.0 geändert.

Grüsse

von Theo B. (theozh)


Lesenswert?

Ok.
Mein Fehler. Wollte auf Nummer Sicher gehen und hatte Stable Release 
V1.5 installiert.
Mit 2.0b8 tut's. Sehr schön!

Nun muss ich schauen, wie ich das ganze in mein 
FreePascal/Lazarus-Programm einbinden kann, damit ich gesteuerte 
Schnappschüsse machen kann. Ich hoffe, das Ganze wird kein Ding der 
Unmöglichkeit.

von Markus M. (mark_m)


Lesenswert?

Mit direktem einbinden wird es wohl nicht funktionieren. Prozessing 
basiert auf Java.

Du kannst aber eine Processing Anwendung implementieren, die Du aus 
deiner Anwendung starten und stoppen kannst. Konfigrieren über eine 
Datei die deine Anwendung schreibt und die Video App liest. Den Auslöser 
für eine Bildaufnahme lönntest Du über das OS Eventsystem realisieren, 
indem Du z.B. einen Tastendruck simulierst, der vom OS an die Video App 
übergeben wird. Die Bilder legst Du dann wieder mit Zeitstempel auf dem 
Dateisystem ab.

Viele Wege führen zu einer Lösung.

Grüsse

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Man kann auch einfach einen Socket aufmachen da könenn dann Komandos und 
Daten drüber ;-)

von Markus M. (mark_m)


Lesenswert?

Mit Sockets habe ich es bis jetzt auch immer erledigt. Ohne den 
Wissenstand von Theo zu kennen bleibt es aber bei Vorschlägen.

Theo muss sich jetzt dazu äussern.

Grüsse

von Frank (Gast)


Lesenswert?

Sockets würd' ich auch empfehlen, dann könnten Grabber-App und 
Verarbeitung bei Bedarf sogar auf unterschiedlichen Rechnern/Plattformen 
laufen.

von Theo B. (theozh)


Lesenswert?

Hallo zusammen,
danke für die Vorschläge. Ich würde mich als Anfänger mit gewissen 
Grundkenntnissen bezeichnen, der in grauer Vorzeit mal Basic und Pascal 
programmiert hat und sich mit Perl einigermassen auskennt. Habe keine 
Ahnung von Sockets etc...

Ich möchte nur ein einfaches, kompaktes .exe mit simplem GUI 
realisieren, was ohne großartige Runtime Engines (z.B. von LabView 
etc.), Java Zusatzpakete und sonstige Extra-Umwege oder Installationen 
auskommt und mehr oder weniger auf jedem einfachen (auch älteren) 
Rechner (vorerst Windows, später evtl. Linux o.a.) funktioniert.
Da wurde mir FreePascal/Lazarus empfohlen.

In der Zwischenzeit habe ich noch folgendes gefunden:
http://sourceforge.net/projects/freepascalvideo/
Damit habe ich ein kleines FreePascal Programm, dass mir die Webcam 
erkennt und in einem Fenster darstellt. Wie ich diese Daten nun 
abspeichern kann und Einstellungen vornehmen kann, usw. muss ich jetzt 
schauen...
Theo.

von Markus M. (mark_m)


Lesenswert?

Du hast mit Freepascal deine Programmiersprache gefunden.

Ich möchte aber  auch noch anmerken, dass mit Processing mit einem Klick 
Standalone Packete für Windows, Mac OS X und Linux erstellt werden 
können. Diese kommen ohne Installation aus.

Grüsse

von xvzf (Gast)


Lesenswert?

Hi,
ich würde C++ und OpenCV nutzen. In Verbindung mit QT kannst du auch die 
Bilder der Webcam anzeigen. OpenCV unterstützt auch das speichern in 
gängigen Video- und Bildverarbeitungen.

LG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.