Opencv QImage与Mat之间的转换

Opencv QImage与Mat之间的转换


1.QImage转Mat

cv::Mat ImageToMat::ChangeToMat(QImage image)
{

    image = image.convertToFormat(QImage::Format_RGB888);
    cv::Mat tmp(image.height(),image.width(),CV_8UC3,(uchar*)image.bits(),image.bytesPerLine());
        cv::Mat result; // deep copy just in case (my lack of knowledge with open cv)
        cvtColor(tmp, result,CV_BGR2RGB);
        return result;


}

2.Mat转QImage

QImage ImageToMat::ChangeToQIamge(cv::Mat mat)
{
    cv::cvtColor(mat, mat, CV_BGR2RGB);
        QImage qim((const unsigned char*)mat.data, mat.cols, mat.rows, mat.step,
        QImage::Format_RGB888);
        return qim;
}

你可能感兴趣的:(qt+opencv,qt,java,面试)