Как постепенно сохранять изображения, загруженные в QGraphicsView, используя QPushButton & OpenCV :: imwrite - PullRequest
0 голосов
/ 28 февраля 2019

Я подготовил этот маленький проверяемый файл .ui на рисунке 1, который повторяет мою проблему:

small example

Я пытаюсь использовать QPushButton «Печать экрана обоих изображений»чтобы постепенно сохранять изображения слева и справа от QGraphicsView в двух разных папках, имеющихся на моем рабочем столе, см. рисунок 2:

destination_folders

Я могу сделать снимок экрана любого изleftScene или rightScene, просто нажав на связанные с ними QPushButton Печать экрана слева и Печать экрана справа.

Однако я стараюсь в этом конкретном случае не использовать QFileDialog, поскольку мне нужно тихо и постепенно сохранять изображения в двух разных папках назначения, когда я двигаюсь со стрелкой вправо / влево.

См. Ниже фрагмент кода, который я использую:

mainwindow.h

public:
    void bothPrintScreen(const std::string& pathImg);
private slots:
    void on_bothPrintScreen_clicked(const std::string& imgPath);
private:
    int counterA=0;
    int counterB=0;

mainwindow.cpp

void MainWindow::on_bothPrintScreen_clicked(const std::string& imgPath)
{
    bothPrintScreen(imgPath);
}

void MainWindow::bothPrintScreen(const std::string& pathImg){
    cv::Mat left, right;
    std::string outA = pathImg+"/printScreenA_"+std::to_string(counterA++)+".png";
    cv::imwrite(outA,left);
    std::string outB = pathImg+"/printScreenB_"+std::to_string(counterB++)+".png";
    cv::imwrite(outB,right);
}

Я что-то упустил в коде, но я не уверен, что именно.

Компилятор вызывает эту allocate()/deallocate() ошибку, которую я не понимаю:

compiler_error

Пожалуйста, пролите свет на этот вопрос.

1 Ответ

0 голосов
/ 01 марта 2019

Нужно добавить библиотеки OpenCV в ваш проект Qt ( вот так )

INCLUDEPATH += -I/usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_stitching -lopencv_superres ...and another libraries
...