Как конвертировать между 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 для создания простого графического интерфейса?

Другие вопросы по тегам