Как изменить размер cv :: Mat, чтобы использовать его для Qlabel (Моя программа выдает SIGSEV) - PullRequest
0 голосов
/ 06 мая 2020

У меня проблема при изменении размера 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);

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 06 мая 2020

Я решил это, переместив карту (откуда я получил свое изображение) из переменных класса в функцию run (), поэтому мне не нужно изменять размер карты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...