0
我使用opencv+Qt(c++)
,我想一个QColor RGB
像素转换为opencv BGR
像素:如何使用opencv-cv :: Scalar在QT-QColor之间进行转换?
QColor --> cv::Scalar
cv::Scalar --> QColor
我使用opencv+Qt(c++)
,我想一个QColor RGB
像素转换为opencv BGR
像素:如何使用opencv-cv :: Scalar在QT-QColor之间进行转换?
QColor --> cv::Scalar
cv::Scalar --> QColor
的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
}
您还没有给出一个编程语言。在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?
你可能想换B和R ,因为在OpenCV中你通常在BGR上工作,而在RGB中是Qt。您也应该使用qreal变体'getRgbF',因为标量包含双倍 – Miki
谢谢您的提醒! –