如何调整cv::Mat的大小以便将其用于Qlabel(我的程序抛出SIGSEV)



我在调整cv::Mat的大小并尝试将其用于Qlabel中的像素图时遇到了问题。

如果我调整垫子的大小而不将其用于Qlabel,程序运行良好,如果我不调整垫子的尺寸并将其用于具有该大小的像素图,程序也运行良好。当我试图同时做这两件事时,问题就来了,无论出于什么原因,我都不明白。

根据调试,我在这里收到了SIGSEV(从我的主窗口到最深的错误(:

void MainWindow::print_img(const QImage &img)
{
ui->map->setPixmap(QPixmap::fromImage(img.rgbSwapped()));
}
---------
QImage rgbSwapped() const &
{ return rgbSwapped_helper(); }
---------
res = QImage(d->width, d->height, d->format);
---------
QImage::QImage(int width, int height, Format format)
: QImage(QSize(width, height), format)
---------
d = QImageData::create(size, format);
---------
d->data  = (uchar *)malloc(d->nbytes);

提前感谢您的帮助。

我通过将映射(我获取图像的地方(从类变量移动到run((函数来解决这个问题,所以我不必调整映射的大小。

最新更新