gpt4 book ai didi

c++ - 将 Qimage 转换为 Mat opencv 时出错

转载 作者:行者123 更新时间:2023-12-03 12:51:47 24 4
gpt4 key购买 nike

当我将 QImage 转换为 cv::Mat 时,Mat 变得模糊。

这是转换它的代码:

QPixmap pixmap(*ui->imgLabel->pixmap());
QImage image = pixmap.toImage();

image.convertToFormat(QImage::Format_RGB888);

Mat matImage = Mat(image.height(), image.width(), CV_8UC3, image.scanLine(0));

这是缩放后的原始图像:

这是创建的图像:

感谢您的帮助。

最佳答案

我不懂QT,但是你尝试过WEB现成的解决方案吗?例如,来自this link我找到了另一种转换方法:

Mat qimage2mat(const QImage& qimage) {
cv::Mat mat = cv::Mat(qimage.height(), qimage.width(), CV_8UC4, (uchar*)qimage.bits(), qimage.bytesPerLine());
cv::Mat mat2 = cv::Mat(mat.rows, mat.cols, CV_8UC3 );
int from_to[] = { 0,0, 1,1, 2,2 };
cv::mixChannels( &mat, 1, &mat2, 1, from_to, 3 );
return mat2;
};

关于c++ - 将 Qimage 转换为 Mat opencv 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11903587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com