Skip to content

Releases: Dovyski/cvui

v2.9.0-beta

04 Sep 19:49
f2089cd
Compare
Choose a tag to compare
v2.9.0-beta Pre-release
Pre-release

Long time no see, right?! 😄

It's been almost 4 (F-O-U-R) years since the last release. That's a lifetime in terms of software/lib development. The world is a very different place now. We have even been through a worldwide pandemic! I am also a different person as well. You all have probably noticed that cvui is not my main focus anymore.

However, I still want to maintain it and eventually add features I think are useful. This lib is close to my heart and it deserves a place under the sun. If I had to choose a name for this release, it would be "v2.9 I am not dead yet!" 😝 This release marks the inclusion of the much requested, much anticipated input component! I can finally rest in bed at night knowing users can input data into their cvui-based OpenCV apps. A huge thank you to Yuyao Huang who kick-started the implementation of cvui::input! Thanks to all users who also supported this feature by commenting, suggesting, voting, and making sure this was something people wanted.

This release will remain in beta for a while as we test and iron things out. If you find anything out of ordinary, please open an issue.

Changelog

Added

Changed

  • Drop support for OpenCV 2.x.

Fixed

  • Small bugfix for potential divide by zero error during sparkline rendering (thanks adewinter, #113)
  • Assert fail bug (thanks to Andyalevy, issue #71)
  • cpp code highlighting in docs (thanks to ksakash, #27)

v2.7.0

08 Oct 08:41
Compare
Choose a tag to compare

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!

Added

Changed

  • Documentation tweaks (help from ShengYu and Akash Kumar Singh).
  • Cmake version 3.1 or 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).

Fixed

v2.7.0-BETA

27 Jun 08:53
Compare
Choose a tag to compare
v2.7.0-BETA Pre-release
Pre-release

See the v2.7.0 release for a complete list of changes and new features.

v2.5.0

04 Apr 14:26
Compare
Choose a tag to compare

This release contains several new features and bug fixes. I tried my best to ensure backward compatibility, but unfortunately, a small change is required to make cvui 2.5.0 work with existing projects. I am honestly sorry for any inconveniences this might cause.

From now on, one (and only one) of your C++ files must include cvui.h after a #define CVUI_IMPLEMENTATION, e.g.

#define CVUI_IMPLEMENTATION
#include "cvui.h"

int main() {

}

All other files should include cvui as usual:

#include "cvui.h"

int main() {

}

This change was required to keep cvui as flexible, simple and "sane" as possible. The function cvui::init() was also modified, but it should not affect existing projects unless they have very specific needs regarding the creation of OpenCV windows. In such case, please read the multiple OpenCV windows doc page.

New features for this release include support for multiple windows, a mouse API (designed with cvui simplicity in mind) and the addition of cvui::imshow() (equivalent of calling cvui::update() then cv::imshow(), as explained here).

Finally, I would like to highlight the completely overhauled documentation and the addition of several new code examples. Documentation pages have been significantly improved with code samples, figures, and better explanations. A tool is as good as its docs, so I hope this will make cvui even better.

Below is a list of changes according to the CHANGELOG. Thank you to all contributors that have helped improve cvui!

Added

Changed

  • cvui can now be included in multiple files (help from Luca Del Tongo; read more).
  • Requirement that one (and only one) of your C++ files must include cvui.h after a #define CVUI_IMPLEMENTATION (read more).
  • Documentation was significantfly improved, e.g. code samples, figures, etc.

Fixed

  • sparkline() crashes with empty vector (#23).

v2.5.0-BETA

01 Dec 13:14
Compare
Choose a tag to compare
v2.5.0-BETA Pre-release
Pre-release

See the v2.5.0 release for a complete list of changes and new features.

v2.0.0

24 May 14:42
Compare
Choose a tag to compare

This release contains bug fixes and several new features. New components were added and the internal structure changed quite a bit (e.g. support for OpenCV 2.x), however the existing API should remain the same.

Additionally please note that cvui is now a header-ony lib, so the old cvui.cpp file is no longer needed. Below is a list of changes according to the CHANGELOG.

Thank you to all contributors that have helped improve cvui!

Added

Changed

  • cvui is now a header-only lib
  • button() component can now use images
  • Labels in the button() component can have keyboard shortcuts with &, e.g. &Quit (thanks to Pascal Thomet)
  • Fixes to README file (thanks to Mateo Hrastnik)

v1.1.0

19 Aug 14:12
Compare
Choose a tag to compare

This release contains bug fixes and a few new features. New components were added, but the already existing API did not change.

Added

  • printf component.
  • Rect component.
  • Sparkline component.
  • Space component.
  • begin*() and end*() block.
  • Docs for all components.
  • More examples.

v1.0.0

20 Jun 12:06
Compare
Choose a tag to compare

This is the first public release of cvui. It contains just a few components (text, button, checkbox and window). It's stable enough to be used in your code, but I have only tested it on Windows with OpenCV 3.0.