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

14
A STEMMER IMAGING PRODUCT CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION

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

Page 1: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

CVB PYTHON PROTOTYPING

SCRIPTING VISION APPLICATIONS

ANDREAS RITTINGER, IMAGE ACQUISITION

Page 2: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

Why prototyping is important?

CONTENT

How can Python help you?

What is special about CVB Python bindings?

Page 3: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

PROTOTYPES

Get in the right direction

Learn

Time and cost estimate

Present e.g. customer

Answers

Page 4: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

WHY PYTHON?

What about the GIL?

Page 5: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

PYTHON STATS

Source: Stack Overflow 2019

Page 6: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

Python is the second best

language

for anything

just import antigravity

Page 7: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

CVB PYTHON PHILOSOPHY

When we started…

Generate Python from C

Generate Python from C++

Do it manually?

Page 8: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

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

Page 9: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

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

Page 10: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

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()

Page 11: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

EXAMPLE TASK

Live display

Works with any GenICam device

Responsive / designable UI

Page 12: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

CVB DISPLAY

How To?

Multithreaded

Generic HW handling

Separate UI from Logic (MV… whatever)

Page 13: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

DEMO

CVB Display Prototype

Page 14: CVB PYTHON PROTOTYPING - STEMMER IMAGING€¦ · CVB PYTHON PROTOTYPING SCRIPTING VISION APPLICATIONS ANDREAS RITTINGER, IMAGE ACQUISITION . A STEMMER IMAGING PRODUCT Why prototyping

A STEMMER IMAGING PRODUCT

THANK YOU VERY MUCH FOR YOUR ATTENTION

Your contact:

Andreas Rittinger

STEMMER IMAGING AG

[email protected]

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.