如何在 QT-QColor 与 opencv-cv::Scalar 之间进行转换?

How to convert between QT-QColor with opencv-cv::Scalar?

我正在使用 opencv+Qt(c++),我想将 QColor RGB 像素转换为 opencv BGR 像素:

QColor --> cv::Scalar
cv::Scalar --> QColor 

你还没有给出编程语言。在python中,可以使用如下命令:

cv2image=cv2.cvtColor(cv2image, cv2.COLOR_BGR2RGB)
cv2image=cv2.cvtColor(cv2image, cv2.COLOR_RGB2BGR)
cv2image=cv2.cvtColor(cv2image, cv2.COLOR_RGB2GRAY)

对于 C++,命令类似。

您可能还想看看这里:How to combine OpenCV with PyQt to create a simple GUI?

qcolor --> 标量

cv::Scalar qcolor2scalar(QColor color)
{
    int r,g,b;
    color.getRgb(&r, &g, &b);
    return cv::Scalar(b,g,r); // swap RGB-->BGR
}

标量 --> qcolor

QColor scalar2qcolor(cv::Scalar color)
{
    return QColor(color[2],color[1],color[0]); // swap RGB-->BGR
}