qt opencv 线程存图
时间: 2023-05-16 13:04:43 浏览: 90
您可以使用Qt和OpenCV来创建一个线程,该线程可以将图像存储到磁盘上。以下是一个简单的示例代码:
```cpp
#include <QCoreApplication>
#include <opencv2/opencv.hpp>
#include <QThread>
using namespace cv;
class ImageSaver : public QThread
{
public:
ImageSaver(Mat image, QString filename)
: m_image(image), m_filename(filename)
{}
void run() override
{
imwrite(m_filename.toStdString(), m_image);
}
private:
Mat m_image;
QString m_filename;
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Mat image = imread("test.jpg");
ImageSaver *saver = new ImageSaver(image, "test_output.jpg");
saver->start();
return a.exec();
}
```
在这个例子中,我们创建了一个名为ImageSaver的类,它继承自QThread。我们将要保存的图像和文件名传递给ImageSaver的构造函数。在run()函数中,我们使用OpenCV的imwrite()函数将图像保存到磁盘上。在main()函数中,我们创建了一个ImageSaver对象并启动它的线程。
阅读全文