qt c语言编程 高斯滤波
时间: 2024-01-21 10:14:53 浏览: 116
高斯滤波是一种常用的图像处理技术,用于平滑图像并减少噪声。在Qt C++编程中,可以使用OpenCV库中的GaussianBlur()函数来实现高斯滤波。
下面是一个示例代码,演示了如何在Qt C++中使用GaussianBlur()函数进行高斯滤波:
```cpp
#include <opencv2/opencv.hpp>
void gaussianBlur(cv::Mat& srcImage, cv::Mat& dstImage, int ksize, double sigmaX, double sigmaY)
{
cv::GaussianBlur(srcImage, dstImage, cv::Size(ksize, ksize), sigmaX, sigmaY);
}
int main()
{
// 读取图像
cv::Mat srcImage = cv::imread("input.jpg");
// 创建输出图像
cv::Mat dstImage;
// 高斯滤波
gaussianBlur(srcImage, dstImage, 5, 0, 0);
// 显示结果
cv::imshow("Input Image", srcImage);
cv::imshow("Gaussian Blur", dstImage);
cv::waitKey(0);
return 0;
}
```
在上面的代码中,首先通过imread()函数读取输入图像。然后,创建一个与输入图像大小相同的输出图像。接下来,调用gaussianBlur()函数来对输入图像进行高斯滤波,其中ksize表示卷积核的大小,sigmaX和sigmaY表示高斯核的标准偏差。最后,使用imshow()函数显示输入图像和经过高斯滤波后的输出图像。
阅读全文