Mat mybasler::QImageToMat(QImage *img)
{
Mat ToCvMat;
switch (img->format())
{
case QImage::Format_RGB888:
ToCvMat = Mat(img->height(), img->width(), CV_8UC3, (void*)img->bits(), img->bytesPerLine());
cv::cvtColor(ToCvMat, ToCvMat, COLOR_BGR2RGB);
break;
case QImage::Format_ARGB32:
case QImage::Format_RGB32:
case QImage::Format_ARGB32_Premultiplied:
ToCvMat = Mat(img->height(), img->width(), CV_8UC4, (void*)img->bits(), img->bytesPerLine());
break;
case QImage::Format_Indexed8:
ToCvMat = Mat(img->height(), img->width(), CV_8UC1, (void*)img->bits(), img->bytesPerLine());
break;
}
return ToCvMat;
}