Python-bibliotheekfuncties voor een Daheng-camera

Importeren van de bibliotheek

In je software dien je de volgende bibliotheek op te nemen om controle te krijgen over een Daheng-camera.

from DahengAvansLibrary.dahengCameraLibrary import dahengCamera

Maak verbinding met een camera

Daheng-camera’s worden automatisch genummerd zodra je ze aansluit. De eerste camera heeft index 1.
In onderstaand voorbeeld wordt een camera-object aangemaakt dat verwijst naar de eerst aangesloten camera.

camera = dahengCamera(1)

# Controleer of de camera succesvol is geopend
if not camera.isOpen():
    print("Geen camera gevonden of kan camera niet openen.")
    return

Start een camera-stream

Nadat het camera-object is aangemaakt, dien je de camerastream te starten met onderstaande code.

Let op:: Doe dit niet in een (while-)loop.

camera.startStream()

Opvragen van een image (foto) uit de camera

Met onderstaande functie kun je een image van de camera verkrijgen.
Dit is een NumPy-array, die geschikt is voor gebruik met OpenCV.

image = camera.grab_frame()

Stoppen van de stream

Als je tijdelijk het streamen van de camera wilt stoppen, kan dat met de volgende functie:

camera.stopStream()

Afsluiten van de camera

Aan het einde van je programma dien je de camera netjes af te sluiten met de volgende functie:

camera.close()

Programmeren van camera-features

Er zijn zogeheten functies waarmee je verschillende instellingen van de camera kunt opvragen en wijzigen.
Deze instellingen worden features genoemd in de documentatie van Daheng.
Voorbeelden van features zijn:

  • Gain

  • ExposureTime

  • TriggerMode

Je kunt in het bestand dahengFeatureList.py in de map DahengAvansLibrary bekijken welke features zijn geïmplementeerd.
De belangrijkste functies van iedere feature worden hieronder beschreven.

Elke feature heeft een aantal functies die je in Python kunt gebruiken. Hieronder staan de belangrijkste uitgelegd.


Verkrijgen van het bereik

Met onderstaande functie verkrijg je het bereik van de feature als een Python-dictionary.

Let op: De dictionary-items zijn afhankelijk van het featuretype.
Featuretypen zijn gedefinieerd in het bestand dahengFeatureType.py in de map DahengAvansLibrary.

range = camera.<feature>.get_range()
range_minimaal = range["min"]
range_maximaal = range["max"]

Verkrijgen van de huidige ingestelde waarde

Met onderstaande functie kun je de huidige waarde van een feature opvragen:

current_value = camera.<feature>.get()

Instellen van een nieuwe waarde

Met onderstaande functie kun je de waarde van een feature wijzigen.

Let op: Het type (int, float, bool, …) van de nieuwe waarde (new_value) moet overeenkomen met het featuretype.

camera.<feature>.set(new_value)

Verzenden van een commando

Met onderstaande functie kun je een commando van de camera uitvoeren, bijvoorbeeld een SoftwareTrigger:

camera.<feature>.send_command()

Zelf features toevoegen

De lijst met features van de Daheng-camera is lang; daarom zijn niet alle features geïmplementeerd.
Je kunt in het bestand dahengFeatureList.py in de map DahengAvansLibrary zelf extra features toevoegen.
Uiteraard kun je alleen features toevoegen die worden ondersteund door de Daheng-driver van de camera.

Een volledige lijst met beschikbare features vind je in de
Daheng Python Manual, Appendix 3.4.

Tip: Gebruik de exacte namen en het juiste type zoals vermeld in de handleiding.

Let op: Als je een feature toevoegt met een naam die niet in de originele Daheng-driver bestaat, zal een je code een foutmelding krijgen bij het uitvoeren van de betreffende functie. Deze worden in de kleur rood weergegeven in je Terminal.