At first glance displaying an image on screen seems like simple task. However, it can become quite tricky if your requirements deviate from the main stream in essential points. Unfortunately, this is the case for quite some machine vision applications.
Therefore, CVB++ offers a ImageView class based on Qt’s QGraphicsView with a lot parameters to configure for optimal results.
One that is especially powerful but not trivial to chose correctly is the render engine.
There are three options.
- Raster
- OpenGL2
- OpenGL3
The raster engine offers reasonable performance and should work independently of your target systems graphics HW. OpenGL3 requires OpenGL3 ES and depending on your implementation might be the best choice. Finally OpenGL2 is aligned with Qt’s minimal OpenGL requirements and can offers a trade of between speed and driver requirements.
So, how to make right choice?
CVB++ brings a source example (QtDisplayAdvanced) that allows you to measure the different render engines on your system.
Here are some results just recorded on my system: