Как конвертировать между QT-QColor с opencv-cv::Scalar?
Я использую opencv+Qt(c++)
и я хочу преобразовать QColor RGB
пиксель в opencv BGR
пиксели:
QColor --> cv::Scalar
cv::Scalar --> QColor
2 ответа
Решение
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++ команды похожи.
Вы также можете посмотреть здесь: Как объединить OpenCV с PyQt для создания простого графического интерфейса?