Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在QT QColor与opencv::Scalar之间转换?_Qt_Opencv_Qcolor - Fatal编程技术网

如何在QT QColor与opencv::Scalar之间转换?

如何在QT QColor与opencv::Scalar之间转换?,qt,opencv,qcolor,Qt,Opencv,Qcolor,我正在使用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=c

我正在使用
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++,命令类似。
您可能还想看看这里:

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

cv2image=cv2.cvtColor(cv2image, cv2.COLOR_BGR2RGB)
cv2image=cv2.cvtColor(cv2image, cv2.COLOR_RGB2BGR)
cv2image=cv2.cvtColor(cv2image, cv2.COLOR_RGB2GRAY)
对于C++,命令类似。 您可能还想看看这里:

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
}
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
}

您可能想交换B和R,因为在OpenCV中,您通常使用BGR,而在RGB中使用Qt。此外,您还应该使用qreal变量,
getRgbF
,因为Scalar包含两个变量。您可能希望交换B和R,因为在OpenCV中,您通常在BGR上工作,而在RGB中的Qt上工作。您还应该使用qreal变量,
getRgbF
,因为标量包含双精度