如何在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
,因为标量包含双精度