
以下是一个使用OpenCV对图像执行去噪的C++代码示例:
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat img = cv::imread("image.png");
if (img.empty())
{
std::cerr << "Failed to open image file" << std::endl;
return -1;
}
cv::Mat denoised_img;
cv::fastNlMeansDenoisingColored(img, denoised_img, 10, 10, 7, 21);
cv::imshow("Original Image", img);
cv::imshow("Denoised Image", denoised_img);
cv::waitKey(0);
return 0;
}
在本例中,我们第一使用“cv::imread()”从文件中加载图像。接下来,我们使用 cv::
fastNlMeansDenisingColored() 函数应用去噪。此函数需要几个参数:
- 输入图像
- 输出图像(去噪结果将存储在其中)
- 去噪过程中使用的搜索窗口的大小(较大的值可能会产生更好的结果,但计算成本更高)
- 去噪过程中使用的补丁窗口的大小(较大的值可能会产生更好的结果,但计算成本更高)
- 控制去噪程度的h参数(较小的值会产生更强的去噪,但可能会引入模糊)
- 去噪过程中用于匹配的模板窗口大小(较大的值可能会产生更好的结果,但计算成本更高)
最后,我们使用“cv::imshow()”显示原始图像和去噪图像,并等待用户按任意键,然后退出程序,返回值为0。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...


