digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
Loading...
Searching...
No Matches
Digikam::QtOpenCVImg Class Reference

Public Types

enum  MatColorOrder {
  MCO_BGR , MCO_RGB , MCO_BGRA = MCO_BGR , MCO_RGBA = MCO_RGB ,
  MCO_ARGB , MCO_INVALID
}
 

Static Public Member Functions

static cv::Mat image2Mat (const DImg &img, int requiredMatType=CV_8UC(0), MatColorOrder requiredOrder=MCO_BGR)
 Convert QImage to/from cv::Mat.
 
static cv::Mat image2Mat (const QImage &img, int requiredMatType=CV_8UC(0), MatColorOrder requiredOrder=MCO_BGR)
 Convert QImage to cv::Mat.
 
static cv::Mat image2Mat_shared (const QImage &img, MatColorOrder *const order=nullptr)
 Convert QImage to/from cv::Mat without data copy.
 
static cv::UMat image2UMat (const DImg &img, int requiredMatType=CV_8UC(0), MatColorOrder requiredOrder=MCO_BGR)
 
static QImage mat2Image (const cv::Mat &mat, MatColorOrder order=MCO_BGR, QImage::Format formatHint=QImage::Format_Invalid)
 Convert cv::Mat to QImage.
 
static QImage mat2Image_shared (const cv::Mat &mat, QImage::Format formatHint=QImage::Format_Invalid)
 Convert cv::Mat to QImage without data copy.
 

Member Function Documentation

◆ image2Mat()

cv::Mat Digikam::QtOpenCVImg::image2Mat ( const DImg img,
int  requiredMatType = CV_8UC(0),
MatColorOrder  requiredOrder = MCO_BGR 
)
static

Convert DImg to cv::Mat.

  • cv::Mat
    • Supported channels
      • 1 channel
      • 3 channels (B G R), (R G B)
      • 4 channels (B G R A), (R G B A), (A R G B)
    • Supported depth
      • CV_8U [0, 255]
      • CV_16U [0, 65535]
      • CV_32F [0, 1.0]
  • QImage
    • All of the formats of QImage are supported.

◆ image2Mat_shared()

cv::Mat Digikam::QtOpenCVImg::image2Mat_shared ( const QImage &  img,
MatColorOrder *const  order = nullptr 
)
static

Convert QImage to cv::Mat without data copy.

  • Supported QImage formats and cv::Mat types are:
    • QImage::Format_Indexed8 <==> CV_8UC1
    • QImage::Format_Alpha8 <==> CV_8UC1
    • QImage::Format_Grayscale8 <==> CV_8UC1
    • QImage::Format_RGB888 <==> CV_8UC3 (R G B)
    • QImage::Format_RGB32 <==> CV_8UC4 (A R G B or B G R A)
    • QImage::Format_ARGB32 <==> CV_8UC4 (A R G B or B G R A)
    • QImage::Format_ARGB32_Premultiplied <==> CV_8UC4 (A R G B or B G R A)
    • QImage::Format_RGBX8888 <==> CV_8UC4 (R G B A)
    • QImage::Format_RGBA8888 <==> CV_8UC4 (R G B A)
    • QImage::Format_RGBA8888_Premultiplied <==> CV_8UC4 (R G B A)
  • For QImage::Format_RGB32 ,QImage::Format_ARGB32 and QImage::Format_ARGB32_Premultiplied, the color channel order of cv::Mat will be (B G R A) in little endian system or (A R G B) in big endian system.
  • User must make sure that the color channels order is the same as the color channels order requried by QImage.