1 QPixmap MainWindow::opencvToQImage(const QString &str) 2 { 3 cv::Mat cvImage = cv::imread(str.toStdString(),cv::IMREAD_REDUCED_COLOR_2); 4 cv::Mat resizeMat; 5 cv::resize(cvImage, resizeMat, cv::Size(ui->label->width(),ui->label->height()), 0, 0, cv::INTER_AREA)...
cv::Mat qimage2mat_ref(QImage &img, int format) { return cv::Mat(img.height(), img.width(), format, const_cast<uchar*>(img.bits()), img.bytesPerLine()).clone(); } 还可以用下面的这个代码,参考了这个帖子: //### cv::Mat ---> QImage ### QImage cvMat_to_QImage(const cv::...
I have function converting cv::Mat to QImage QImage cvMatToQImg(cv::Mat& mat) { cv::Mat rgb; if(mat.channels()==1) { cv::cvtColor(mat,rgb,CV_GRAY2BGR); cv::cvtColor(rgb,rgb,CV_BGR2BGRA); QImage temp = QImage((unsigned char*)(rgb.data), rgb.cols, rgb.rows,QImage::Format...
cv::Mat qimage2mat_ref(QImage &img, int format) { return cv::Mat(img.height(), img.width(), format, img.bits(), img.bytesPerLine()); } // Deep copy cv::Mat qimage2mat_ref(QImage &img, int format) { return cv::Mat(img.height(), img.width(), format, const_cast<uchar*>...
可轻松调节其他类型。它尽可能高效。QImage Mat2QImage(const cv::Mat3b ...
Qt 中处理图像主要用的是QImage类,OpenCV中主要用的是cv::Mat类。下面的两个函数可以用来实现这两个类相互转换。 [cpp]view plain copy QImage cvMat2QImage(const cv::Mat& mat) { // 8-bits unsigned, NO. OF CHANNELS = 1 ...
// cv::Mat转QImage函数 QImagematToQImage(constcv::Mat&mat) { // 检查输入图像的有效性和格式 if(mat.empty()) returnQImage(); // 根据图像颜色通道数确定适当的格式 intformat; switch(mat.channels()) { case1: format=QImage::Format_Grayscale8; ...
int argv , char* argc[] ){ 8 9 QApplication a(argv,argc); 10 QImage img; 11 ...
QImage image(pSrc, mat.cols, mat.rows, mat.step, QImage::Format_ARGB32); return image.copy(); } else { qDebug() <<"ERROR: Mat could not be converted to QImage."; return QImage(); } } cv::Mat QImage2cvMat(QImage image)