Skip to content

@Dovyski Dovyski released this Apr 4, 2018 · 86 commits to master since this release

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.

#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!



  • 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.


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