如何使用QPushButton和OpenCV :: imwrite保存在QGraphicsView上加载的增量图像

时间:2019-02-28 18:47:19

标签: c++11 qt5 opencv3.0 qgraphicsview qgraphicsscene

我在图1中准备了这个可验证的小型.ui,它复制了我遇到的问题:

small example

我正在尝试使用QPushButton“同时打印两个图像”将QGraphicsView的左右图像逐步保存到桌面上的两个不同文件夹中,请参见图2:< / p>

destination_folders

我可以通过单击leftScenerightScene的相关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 :(得分:1)

它需要将OpenCV库添加到您的Qt项目(like this

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