当前位置: 首页 > news >正文

OpenCV计算摄影学(21)非真实感渲染之边缘保留滤波器edgePreservingFilter()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

滤波是图像和视频处理中的基础操作。边缘保留平滑滤波器被广泛应用于多种不同场景[98]。
cv::edgePreservingFilter 是一种边缘保留滤波器,用于在平滑图像的同时保留边缘细节。其核心目标是:

  • 降噪:减少图像中的噪声。
  • 边缘保护:避免平滑操作模糊图像中的边缘和重要结构。

工作原理

  • 边缘检测:
    计算图像梯度或边缘强度,标记潜在边缘区域。

  • 空间域平滑:
    使用高斯滤波对图像进行初步平滑(由sigma_s控制范围)。

  • 频率域滤波:
    在频域中应用高斯滤波,保留与边缘相关的高频成分,抑制噪声(由sigma_r控制颜色相似性)。

  • 边缘恢复:
    根据边缘信息修正平滑后的图像,确保边缘清晰(具体方式取决于flags选择的算法)。

  • 输出:
    将处理后的图像转换回空间域,得到最终结果。

    函数原型

void cv::edgePreservingFilter 	
(
	 	InputArray  	src,
		OutputArray  	dst,
		int  	flags = 1,
		float  	sigma_s = 60,
		float  	sigma_r = 0.4f 
) 		

参数

  • src 输入 8 位 3 通道图像。
  • dst 输出 8 位 3 通道图像。
  • flags 边缘保护滤波器类型:cv::RECURS_FILTER 或 cv::NORMCONV_FILTER。
  • sigma_s 取值范围为 0~200。
  • sigma_r 取值范围为 0~1。

代码示例

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main( int argc, char* argv[] )
{
    Mat src = imread( "/media/dingxin/data/study/OpenCV/sources/images/jiangnan.jpg" );  // 输入图像
    if ( src.empty() )
    {
        printf( "不能打开图像!\n" );
        return -1;
    }

    namedWindow( "1-原图", WINDOW_AUTOSIZE );
    imshow( "1-原图", src );

    Mat dst;
    edgePreservingFilter( src, dst, 1, 60, 0.44 );  // 调用滤波函数
    imshow( "2-edgePreservingFilter", dst );

    waitKey( 0 );
    return 0;
}

运行结果

在这里插入图片描述

相关文章:

  • YOLOv11融合[CVPR2025]ARConv中的自适应矩阵卷积
  • 支持向量机SVM的MATLAB分类预测实现
  • 洛谷 P1115 最大子段和(前缀和详解)c++
  • mysql gtid 创建主从大量冲突解决办法
  • 单台openEuler24.03 LTS下的开源大数据环境搭建
  • ubuntu 24.04(linux)安装 jetbrains IntelliJ IDEA,设置图标
  • JDBC相关
  • 连续出现的字符(信息学奥赛一本通-1148)
  • docker配置国内镜像站链接
  • Three.js Fog 组件知识整理
  • 贪心算法(7)(java) 分发饼干
  • Python的类和对象(3)
  • HTML中滚动加载的实现
  • 第一节:关于数组的算法(python版)
  • ESP32(2)WIFI链接
  • 天梯赛 L2-004 这是二叉搜索树吗?
  • C#设计模式Demo——MVC
  • matlab中如何集成使用python
  • 文捕---博客文章下载工具
  • AI入门7:python三种API方式调用本地Ollama+DeepSeek
  • 国铁集团:5月1日全国铁路预计发送旅客2250万人次
  • 三家“券商系”公募同日变更掌门人,新董事长均为公司股东方老将
  • 上海市十六届人大常委会第二十一次会议表决通过有关人事任免事项
  • 李在明涉嫌违反《公职选举法》案将于5月1日宣判
  • 发出“美利坚名存实亡”呼号的卡尼,将带领加拿大走向何方?
  • 历史新高!上海机场一季度营收增至31.72亿元,净利润增34%