CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION...

Post on 22-Sep-2020

10 views 2 download

Transcript of CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION...

A STEMMER IMAGING PRODUCT

CVB PYTHON PROTOTYPING

SCRIPTING VISION APPLICATIONS

ANDREAS RITTINGER, IMAGE ACQUISITION

A STEMMER IMAGING PRODUCT

Why prototyping is important?

CONTENT

How can Python help you?

What is special about CVB Python bindings?

A STEMMER IMAGING PRODUCT

PROTOTYPES

Get in the right direction

Learn

Time and cost estimate

Present e.g. customer

Answers

A STEMMER IMAGING PRODUCT

WHY PYTHON?

What about the GIL?

A STEMMER IMAGING PRODUCT

PYTHON STATS

Source: Stack Overflow 2019

A STEMMER IMAGING PRODUCT

Python is the second best

language

for anything

just import antigravity

A STEMMER IMAGING PRODUCT

CVB PYTHON PHILOSOPHY

When we started…

Generate Python from C

Generate Python from C++

Do it manually?

A STEMMER IMAGING PRODUCT

CVB PYTHON

Source: https://en.wikipedia.org/wiki/NumPy#/media/File:NumPy_logo.svg

Source: https://qt-wiki-uploads.s3.amazonaws.com/images/3/33/Py-128.png

Explicit resource management

Build-in documentation

Multithreading and async support

Stable API (PEP 384)

Interface to NumPy

UI using PySide2

A STEMMER IMAGING PRODUCT

OBJECT ORIENTATION

The basic classes the wrappers provide

Device Factory

Device(vin)

Device(video)

Device(emu)

Stream Node

Map

Device(non

streaming)

Stream

Node

Ring

BufferImage

Plane Plane

Node

Map

Node

Interfaces

A STEMMER IMAGING PRODUCT

Hello World:

CVB PYTHON

import osimport cvb

with cvb.DeviceFactory.open(os.path.join(cvb.install_path(), "drivers", "CVMock.vin") as device:stream = device.streamstream.start()

for i in range(10):image, status = stream.wait()if status == cvb.WaitStatus.Ok:

print("Acquired image: " + str(i))

stream.abort()

A STEMMER IMAGING PRODUCT

EXAMPLE TASK

Live display

Works with any GenICam device

Responsive / designable UI

A STEMMER IMAGING PRODUCT

CVB DISPLAY

How To?

Multithreaded

Generic HW handling

Separate UI from Logic (MV… whatever)

A STEMMER IMAGING PRODUCT

DEMO

CVB Display Prototype

A STEMMER IMAGING PRODUCT

THANK YOU VERY MUCH FOR YOUR ATTENTION

Your contact:

Andreas Rittinger

STEMMER IMAGING AG

a.rittinger@stemmer-imaging.de

https://www.stemmer-imaging.dehttps://forum.commonvisionblox.com

© Copyright STEMMER IMAGING. Alle Rechte vorbehalten. Alle Texte, Bilder, Graphiken, Ton-, Video- und Animationsdateien

sowie ihre Arrangements unterliegen dem Urheberrecht und anderen Gesetzen zum Schutz geistigen Eigentums. Sie dürfen weder

für Handelszwecke oder zur Weitergabe kopiert, noch verändert und auf anderen Web-Sites verwendet werden. Einige STEMMER

IMAGING-Seiten enthalten auch Bilder, die dem Urheberrecht derjenigen unterliegen, die diese zur Verfügung gestellt haben.