由qimage类有浅拷贝和深拷贝区分,
在采用return时应在对象后面加**.copy()**
防止出现调用时出现花屏的情况。
QImage mv2qtimage(const cv::Mat& image,const qint16 &b)
QImage MainWindow:: mv2qtimage(const cv::Mat& image,const qint16 &b)
{
Mat temp;
// if (b)
// {
cvtColor(image, temp, COLOR_BGR2RGB);//BGR convert to RGB CV_BGR2RGB
// }
// else
// {
// cvtColor(image, temp, COLOR_GRAY2RGB);//GRAY convert to RGB
// Qtemp = QImage((const unsigned char*)(temp.data), temp.cols, temp.rows, temp.step, QImage::Format_RGB888);
// }
return QImage((const unsigned char*)(temp.data), temp.cols, temp.rows, temp.step, QImage::Format_RGB888).copy();
//ui->label->setPixmap(QPixmap::fromImage(Qtemp));
// ui->label->resize(Qtemp.size());
// ui->label->show();
}