请使用opencv、Qt平台编写一段C++代码,用来将彩色图片上的噪点去除,且尽量保持原图片的清晰度。
时间: 2024-05-03 11:20:46 浏览: 87
数字图像处理基于c++和opencv的图像小波阈值去噪源码(软阈值和硬阈值处理)+代码注释+sln解决方案.zip
5星 · 资源好评率100%
好的,我明白您的要求。以下是代码示例:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读入原始图片
Mat srcImage = imread("input.jpg");
if (srcImage.empty())
{
cerr << "Could not load image" << endl;
return -1;
}
// 添加高斯滤波,降低噪点
Mat smoothImage;
GaussianBlur(srcImage, smoothImage, Size(3, 3), 0, 0);
// 转为灰度图像
Mat grayImage;
cvtColor(smoothImage, grayImage, COLOR_BGR2GRAY);
// 对灰度图像进行中值滤波,去除噪点
Mat denoisedImage;
medianBlur(grayImage, denoisedImage, 3);
// 对比度增强,增强清晰度
Mat enhancedImage;
equalizeHist(denoisedImage, enhancedImage);
// 显示处理后的图片
imshow("Denoised Image", enhancedImage);
waitKey(0);
return 0;
}
```
这段代码使用了高斯滤波、中值滤波和直方图均衡化等方法来去除噪点和增强清晰度,可以将彩色图片处理成更清晰的效果。
阅读全文