C++ OpenCV去噪

内容分享2小时前发布
1 0 0

C++ OpenCV去噪

以下是一个使用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。

© 版权声明

相关文章

暂无评论

none
暂无评论...