qt+opencv3模糊图像变清晰代码
时间: 2023-10-03 14:03:11 浏览: 37
实现图像清晰化的方法很多,其中一种比较简单的方法是使用图像增强技术中的锐化滤波器,例如Sobel算子、Laplacian算子等。此外,也可以使用图像去模糊技术,例如维纳滤波器、逆滤波器等。
下面是一个使用OpenCV实现锐化滤波器的示例代码,同时也使用了Qt进行图像显示:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
#include <QApplication>
#include <QLabel>
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 读入图像
Mat src = imread("test.jpg", IMREAD_GRAYSCALE);
if (src.empty())
{
cout << "Failed to load image!" << endl;
return -1;
}
// 定义锐化滤波器
Mat kernel = (Mat_<char>(3,3) << 0,-1,0,-1,5,-1,0,-1,0);
// 对图像进行滤波
Mat dst;
filter2D(src, dst, src.depth(), kernel);
// 显示原始图像和处理后的图像
QLabel label1, label2;
label1.setPixmap(QPixmap::fromImage(QImage(src.data, src.cols, src.rows, QImage::Format_Grayscale8)));
label1.show();
label2.setPixmap(QPixmap::fromImage(QImage(dst.data, dst.cols, dst.rows, QImage::Format_Grayscale8)));
label2.show();
return a.exec();
}
```
运行该程序后,会显示原始图像和处理后的图像,可以通过调整锐化滤波器的参数来得到不同的效果。