首页 > 编程语言 >C#+OpenCV基础(六)_均值中值高斯双边滤波

C#+OpenCV基础(六)_均值中值高斯双边滤波

时间:2024-07-10 16:43:51浏览次数:17  
标签:Mat dstMet C# 模糊 滤波 OpenCV ksize mat

一、知识

  • 卷积核:用来对图像矩阵进行平滑的矩阵,也称为过滤器。
  • 锚点:卷积核和图像矩阵重叠,进行内积运算,运算后锚点位置的像素点会被计算值代替。默认其中心点为锚点。
  • 步长:卷积核沿着图像矩阵移动的方向。
  • 内积:卷积核和图像矩阵对应像素点相乘,然后相加得到一个总和。

二、实现

1、均值滤波

/// <summary>
/// 均值滤波(模糊)
/// 线性模糊
/// </summary>
/// <param name="mat">图片</param>
/// <param name="ksize">滤波模版Kernel的尺寸;必须是正奇数,值越大越模糊;new Size(11, 11)</param>
/// <param name="anchor">锚点;默认为(-1,-1)即kernel的中心点</param>
/// <param name="borderType">外部像素的边界模式</param>
/// <returns></returns>

public static Mat Blur(Mat mat, Size ksize, Point? anchor = null, BorderTypes borderType = BorderTypes.Default)
{
    Mat dstMet = new Mat();
    Cv2.Blur(mat, dstMet, ksize, anchor, borderType);
    return dstMet;
}

2、中值滤波

/// <summary>
/// 中值滤波(模糊)
/// 非线性模糊
/// 对去除斑点噪声和椒盐噪声很有用
/// </summary>
/// <param name="mat">图片</param>
/// <param name="ksize">滤波模版Kernel的尺寸;必须是正奇数,值越大越模糊;11</param>
/// <returns></returns>
public static Mat MedianBlur(Mat mat, int ksize)
{
    Mat dstMet = new Mat();
    Cv2.MedianBlur(mat, dstMet, ksize);
    return dstMet;
}

3、高斯滤波

/// <summary>
/// 高斯滤波(模糊)
/// 线性模糊
/// </summary>
/// <param name="mat">图片</param>
/// <param name="ksize">滤波模版Kernel的尺寸;必须是正奇数,值越大越模糊;new Size(11, 11)</param>
/// <param name="sigmaX">X轴方向的标准差,值越大越模糊</param>
/// <param name="sigmaY">Y轴方向的标准差,值越大越模糊</param>
/// <param name="borderType">外部像素的边界模式</param>
/// <returns></returns>
public static Mat GaussianBlur(Mat mat, Size ksize, double sigmaX,
    double sigmaY = 0, BorderTypes borderType = BorderTypes.Default)
{
    Mat dstMet = new Mat();

    Cv2.GaussianBlur(mat, dstMet, ksize, sigmaX, sigmaY, borderType);

    return dstMet;
}

4、双边滤波

  双边滤波(非线性模糊),原理为一个与空间距离相关的高斯函数与一个与灰度距离有关的高斯函数相乘。

  案例:略

标签:Mat,dstMet,C#,模糊,滤波,OpenCV,ksize,mat
From: https://www.cnblogs.com/qq2806933146xiaobai/p/18294405

相关文章

  • 易优CMS模板标签videolist视频列表
    [基础用法]标签:videolist描述:该标签用于视频模型选集功能,调用当前视频侧面选集列表。提示:搭配【videoplay视频播放】标签使用,默认播放选集列表的第一个。用法:{eyou:videolistaid='文档ID'autoplay='on'id='video'}  <ahref="javascript:void(0);"{$video.onclick}>{$vid......
  • Luckysheet 的使用以及踩坑
    最近在项目中遇到了需要实现一个类似于excel功能的需求,同时需要实现excel的导入导出以及打印功能。接下来介绍一下使用luckysheet的过程以及过程中遇到的一些问题以及解决方案。1.使用1.1引入lucky是一个比较老的项目,所以引入方式建议使用全局方式引入。虽然也有npm包,但是......
  • CAD可以转成PDF吗?有哪些转换的方法?
    在CAD制图过程中,我们可能会遇到这样的问题:完成CAD制图后,为了方便阅览,经常会直接输出成PDF格式,输出完成后,打开一看,发现和原来的图纸差距很大,输出PDF文字显示不全,遇到这种情况该如何处理呢?给大家分享2个CAD转PDF的好用的转换方法。方法一:使用转换工具ilovepdf在线页面转换,无需下......
  • C#+OpenCV基础(五)_添加边框
    ///<summary>///添加边框///</summary>///<paramname="srcMat">图片</param>///<paramname="top">顶部</param>///<paramname="bottom">底部</param>///<paramname="left"......
  • 0081_Search-in-Rotated-Sorted-Array-II【M】pivot 有序数组(值可重复)中的查找数值
    JY:pivot有序数组(值可重复)中的查找数值1、二分查找该题的任何解法同样可用于0033_search-in-rotated-sorted-array【M】中nums可能包含重复元素,这会影响到程序的时间复杂度吗?会,使用二分查找局部有序时,当nums[mid]==nums[low]时(或其它类似情况),无法确定左侧区间还是右......
  • windows下使用dockerdesktop进行部署
    Docker部署springboot项目环境准备要在windows上使用docker需要确认系统的需求需要启用虚拟化支持的CPU启用适用于windows的Linux子系统功能保证足够的内存下载dockerdesktop下载后会提示安装对应的环境坑点安装过程中需要安装wsl环境,会遇到0x80370102问题。根据......
  • 今天晚上要看一下整车网络拓扑和CAN同学以及DBC文件
    https://mp.weixin.qq.com/s/UE8qqWCZxhq-yHzJb_VUawhttps://mp.weixin.qq.com/s?__biz=MzkzNzUwNDQ2NQ==&mid=2247486855&idx=1&sn=d1aa60630dd731f9bf8a662a65d29675&chksm=c28f3639f5f8bf2ff02b7eea4d24b772391fcfc02e51626b149f977bd3e8071e65a8566629f2......
  • Electron-ViteChat桌面端聊天室|electron31+vite5+pinia2仿微信EXE程序
    原创研发Electron31+vue3+elementPlus仿微信客户端聊天应用。使用最新跨平台技术electron31.x+vite5+vue3setup+pinia2+element-plus实战开发电脑版聊天室Exe程序。整个聊天程序界面清爽简约,支持展示/收缩侧边栏、electron新开多窗口、换肤等功能。electron-vitechat......
  • Halcon学习笔记——Day1
    题外话:最近因为项目需要halcon,所以开始学习一下halcon,顺便记录一下学习的笔记,如果感兴趣就给个关注,后续我会持续更新关于halcon的学习笔记;一、视觉包含的学科:1、数学2、软件3、图像4、光学5、控制6、电气二、视觉需求1、识别定位2、测量(2D、3D)3、缺陷(外观检测)......
  • COMP6685 Deep Learning
    COMP6685DeepLearningRETRIEVALASSESSMENTINDIVIDUAL(100%oftotal mark)Deliverables:                     1xJupyternotebookTask: You are required to develop a phyton code using TensorFlow (Keras) with additional com......