This release contains bug fixes and the addition of a pure Python implementation of cvui, i.e.
cvui.py. The Python port of cvui has been conceived and developed with the aim of achieving a 1-to-1 match regarding the already existing C++ API. As a consequence, functions and parameters names were kept the same, so existing C++ documentation should apply to Python with minor changes.
cvui.py also aims to be a "header-only" file, so all you have to do is add it to your project and you are good to go. Here is a simple example of the Python usage of cvui:
import numpy as np import cv2 import cvui WINDOW_NAME = 'CVUI Test' cvui.init(WINDOW_NAME) # Create a frame frame = np.zeros((200, 400, 3), np.uint8) while True: # clear the frame frame[:] = (49, 52, 49) # render a message in the frame at position (10, 15) # then show it on the screen cvui.text(frame, 10, 15, 'Hello world!') cvui.imshow(WINDOW_NAME, frame) if cv2.waitKey(20) == 27: break
All code examples are now also available in Python. The C++ version of cvui makes heavy use of param overloading, which is a problem in Python. To ensure good documentation and proper code auto-completion for cvui in Python IDEs,
cvui.py has several dummy/wrapping functions. They have a proper list of arguments instead of a single
*args param. It should provide a good user experience without causing any problems.
Finally, I would like to highlight the addition of new code examples, particularly the
ui-enhanced-* ones. They show how to improve existing cvui components, e.g. make a window movable and minimizable. Documentation pages have also been tweaked to accommodate information regarding the newly added Python support.
Below is a list of changes according to the CHANGELOG. Thank you to all contributors that have helped improve cvui!
- Python implementation of cvui, i.e.
- Python examples ported from the already existing C++ ones.
- New ui-enhanced-* examples, e.g. moving settings window (#41, #36, help from Amaury Bréhéret and ShengYu).
- Cmake option
ADD_PYTHON_EXAMPLESto control the build of Python examples (read more).
- Documentation tweaks (help from ShengYu and Akash Kumar Singh).
- Cmake version
3.1or higher is now required to build the examples.
- Cmake files were improved.
rect()color filling now supports alpha values, e.g.
0x7700ff00(blue with 50% transparency) (#39, help from Justin Muncaster).