Casting between Qt and OpenCV primitives
As a follow-up to the previous post, I’d like to present some code which I think might be helpful for other Qt / OpenCV projects as well.
This code was written for Pastie. Pastie is a piece of software I wrote as part my image processing seminar. It makes use of the well known libraries:
I wrote a C++ header file to facilitate the co-operation of those two libraries. This file enables the conversion / casting of OpenCV and Qt types e.g.:
#include <QImage>#include <cv/core.hpp>
QImage qimg("filename.png");
cv::Mat cvimg = toCv(qimg);The source code is available at Codeberg: /stv0g/snippets/c/qcv_cast.h .
The following conversions are supported:
| QImage | ⇆ | cv::Mat |
|---|---|---|
| QTransform | ⇆ | cv::Mat |
| QPoint | ⇆ | cv::Point2i |
| QPointF | ⇆ | cv::Point2f |
| QRect | ⇆ | cv::Rect2i |
| QRectF | ⇆ | cv::Rect2f |
| QSize | ⇆ | cv::Size |
You can find some examples in the real code here: /stv0g/pastie/filters/pattern.cpp and here /stv0g/pastie/cast.h .