qt+opencv3模糊图像变清晰代码
时间: 2023-10-03 07:03:11 浏览: 56
在Qt中使用OpenCV库可以实现更高级的图像处理功能,包括图像清晰化。下面是一个使用Qt和OpenCV 3实现图像清晰化的代码示例:
```cpp
#include <QCoreApplication>
#include <QImage>
#include <QDebug>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
cv::Mat QImageToMat(const QImage& image)
{
cv::Mat mat(image.height(), image.width(), CV_8UC4, const_cast<uchar*>(image.bits()), image.bytesPerLine());
cv::Mat result;
cv::cvtColor(mat, result, cv::COLOR_RGBA2BGR);
return result;
}
QImage MatToQImage(const cv::Mat& mat)
{
cv::Mat temp;
cv::cvtColor(mat, temp, cv::COLOR_BGR2RGB);
QImage image(temp.data, temp.cols, temp.rows, static_cast<int>(temp.step), QImage::Format_RGB888);
return image.copy();
}
QImage sharpenImage(const QImage& input, double sigma, double threshold, double amount)
{
cv::Mat src = QImageToMat(input);
cv::Mat dst;
cv::GaussianBlur(src, dst, cv::Size(0, 0), sigma);
cv::addWeighted(src, 1.0 + amount, dst, -amount, 0, dst);
cv::Mat mask;
cv::cvtColor(src, mask, cv::COLOR_BGR2GRAY);
cv::threshold(mask, mask, threshold, 255, cv::THRESH_BINARY);
cv::Mat result;
src.copyTo(result, mask);
return MatToQImage(result);
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QImage inputImage("input.jpg");
QImage outputImage = sharpenImage(inputImage, 3.0, 128.0, 0.5);
outputImage.save("output.jpg");
return a.exec();
}
```
在这个示例中,我们使用了OpenCV的GaussianBlur函数实现了高斯模糊操作,并使用addWeighted函数实现了图像锐化操作。我们还使用了OpenCV的cvtColor和threshold函数来创建一个掩码,以便仅对图像中的高对比度区域进行锐化操作。最后,我们使用QImageToMat和MatToQImage函数将OpenCV的Mat类型转换为Qt的QImage类型。
您可以根据需要调整sigma、threshold和amount参数来实现您想要的效果。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)