JKQTPlotter trunk/v5.0.0
an extensive Qt5+Qt6 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies
|
This project (see ./examples/rgbimageplot_opencv/
) simply creates a JKQTPlotter widget (as a new window) and shows an RGB image read from a BMP-file. The image is generated as an OpenCV cv::Mat
image and then copied into a single column of the internal datastore (JKQTPMathImage could be directly used without the internal datastore). To copy the data a special OpenCV Interface function JKQTPCopyCvMatToColumn()
is used, that copies the data from a (https://opencv.org/) cv::Mat
directly into a column.
The function JKQTPCopyCvMatToColumn()
is available from the (non-default) header-only extension from jkqtplotter/jkqtpinterfaceopencv.h
. This header provides facilities to interface JKQTPlotter with OpenCV.The OpenCV-binding itself is header-only, and NOT compiled into the JKQtPlotter libraries. Therefore you can simply include the header and use the facilities provided by it.
The CMake-build system of JKQtPlotter (and its examples) is compatible with both OpenCV 3.4.x and 4.x and uses the standard find_package(OpenCV)
facilities provided by OpenCV to compile and bind against that library. If you want to build the OpenCV-based JKQtPlotter examples (see list above), you either have to ensure that CMake finds OpenCV by itself (i.e. somewhere in the default search paths), or you can set the CMake variable OpenCV_DIR
so it points to the OpenCV directory before configuring JKQtPlotter.
The source code of the main application is (see rgbimageplot_cimg.cpp
:
The result looks like this:
The image is upside-down, because computer images use a coordinate system with 0 at the top-left (left-handed coordinate system) and the JKQTPlotter has its 0 at the bottom-left (right-handed coordinate system).
You can modify the program above to display the image in the correct orientation, by adding the line
This will reorient the y-axis to point from top to bottom (for increasing positive coordinates):
See examples/rgbimageplot
for a detailed description of the other possibilities that the class JKQTPColumnRGBMathImage offer with respect to determining how an image is plotted.