2016-04-30 272 views

回答

1

的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 
} 
+0

你可能想換B和R ,因爲在OpenCV中你通常在BGR上工作,而在RGB中是Qt。您也應該使用qreal變體'getRgbF',因爲標量包含雙倍 – Miki

+0

謝謝您的提醒! –

1

您還沒有給出一個編程語言。在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?

相關問題