c++ - 如何调整 cv::Mat 的大小以便将其用于 Qlabel(我的程序抛出 SIGSEV)
问题描述
调整 cv::Mat 的大小并尝试将其用于 Qlabel 中的像素图时,我遇到了问题。
如果我调整垫子的大小并且不将其用于 Qlabel,则程序可以正常工作,如果我不调整垫子的大小并将其用于具有该大小的像素图,它也可以正常工作。当我出于任何我不明白的原因尝试同时做这两个时,问题就来了。
根据调试,我在这里收到了 SIGSEV(从我的 mainWindow 到最深的错误):
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() 函数来解决它,所以我不必调整地图的大小。
推荐阅读
- api - 在发布请求中将密码视为纯文本是很常见的吗?
- python - 没有从 describe_images 获取信息?
- mysql - 使用 NodeJs 检查 MySQL 数据库中是否存在电子邮件
- flask - 使用表单中的布尔值更新 sqlalchemy
- julia - 比较运算符在带有条件运算符的控制流中使用时在 Julia 脚本文件中不起作用
- symfony - Symfony 4:仅返回活动记录
- node.js - 无法生成迁移
- php - 表单提交后如何保持复选框数组处于选中状态
- java - com.fasterxml.jackson.databind.ObjectMapper 有内部同步吗?
- python-3.x - 复制 vim 中的行以在 ter 命令打开的上述窗口中执行?