计算机视觉全系列实战教程:(九)图像滤波操作

news2024/12/23 23:17:56

1.图像滤波的概述

(1)Why (为什么要进行图像滤波)

  • 去噪:去除图像在获取、传输等过程中的各种噪音干扰
  • 提取特征:使用特定的图像滤波器提取图像特定特征

(2)What (什么是图像滤波)

使用滤波核对图像进行卷积运算或非线性运算,以达到去噪或提取特征的目的的图像处理技术

2.线性滤波

What:对各像素灰度进行简单处理(乘以一个权重),最后求和

(1)方框滤波

归一化方框滤波器和均值滤波器的核基本一致,主要区别是:方框滤波器要进行归一化处理,如果不进行归一化处理,则表示的是方框滤波
在opencv中的滤波算法如下:

void cv::boxFilter(cv::Mat &imSrc, //输入图像
			  cv::Mat &imDst, //输出图像
			  int depth, //图像深度
			  cv::Size ssize, //方框滤波器的尺寸
			  cv::Point(-1,-1), //默认以中心点为基准
			  bool normalize = true, //是否进行归一化处理
			  int borderType = 4
			  );

(2)均值滤波

均值滤波器的核的元素全是1,并进行了归一化操作:即每个元素都会除以核的总数
在这里插入图片描述

void cv::blur(cv::Mat &imSrc, //输入图像
			  cv::Mat &imDst,  //输出图像
			  cv::Size ksize,  //滤波核的尺寸
			  Point anchor=Point(-1,-1),  //默认以中心点为基准
			  int borderType=BORDER_DEFA  //图像外部像素的边界模式,一般默认值即可
			  );

(3)高斯滤波

形状类似于概率论中的高斯分布模型(正态分布模型)

void cv::GaussianBlur(
	cv::Mat &imSrc, //输入图像
	cv::Mat &imDst, //输出图像
	cv::Size ksize, //高斯滤波核的尺寸
	double sigmaX, //高斯核函数在X方向的标准偏差
	double sigmaY = 0, //高斯核函数在Y方向的标准偏差
	int borderType = BORDER_DEFAULT
	);

3.非线性滤波

(1)中值滤波

用像素点领域的灰度值来代替该像素点的灰度值,可以去除最大值和最小值,针对椒盐噪声效果很好

void cv::medianBlur(
	cv::Mat &imSrc, //输入图像
	cv::Mat &imDst, //输出图像
	int ksize  //中值滤波核的尺寸
	);

(2)双边滤波

双边滤波能够在保持边缘的前提下实现降噪的目的,缺点是效率较慢
基本原理:考虑两个权重因素来组成卷积核

  • 空域权重:两点之间的距离,距离越远权重越低
  • 值域权重:两点之间的像素值相似程度,越相似权重越大。
void cv::bilalteralFilter(
	cv::Mat &imSrc, //输入图像
	cv::Mat &imDst,  //输出图像
	double sigmaColor, //值域的标准差
	double sigmaSpace,  //空间域的标准差
	int borderType = BORDER_DEFAULT
	);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1821755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

经典的网站系统架构(入门级)

从开发到部署,从用户访问到底层数据库,介绍搭建网站系统的经典架构的10个核心部分。 (图转自bytebytego,翻译整理by dogstar) 1、使用Git管理和协同源代码,通过CI/CD或Git的Webhook方式自动同步更新部署到服…

Python开源项目周排行 2024年第9周

#2024年第9周2024年6月3日1buku强大的浏览器书签管理工具。这是一款开源的书签命令行管理工具,它轻量、隐私安全且易于使用,支持从主流浏览器导入书签、自动获取书签信息、跨平台同步和强大的搜索功能。2flagsmith轻松管理功能开关和配置的平台。这是一个…

计算机网络(6) UDP协议

一.UDP数据报格式 UDP(User Datagram Protocol,用户数据报协议)是一种简单的传输层协议,与TCP(Transmission Control Protocol,传输控制协议)相比,UDP提供一种无连接、不可靠的数据传…

【建议收藏】技术人必看:如何选择适合你公司的消息队列工具

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 大家好,我是小米,一个充满活力、喜欢分享技术的程序员。今天我想和大家聊聊消息队列这个主题。对于许多开发者来说,消息队列并不是一个陌生的概念,…

Docker部署常见应用之企业级堡垒机JumpServer-问题记录

文章目录 项目场景问题1问题描述原因分析解决方案 问题2问题描述原因分析解决方案 参考文章 项目场景 项目场景:Docker部署常见应用之企业级堡垒机JumpServer 问题1 问题描述 docker-compose.yml 中使用 $SECRET_KEY 和 $BOOTSTRAP_TOKEN加载 ~/.bashrc 环境变量…

2024 年最新 Python 使用 gewe 框架搭建微信机器人实现语音智能回复(详细教程)

Gewe 个微框架 GeWe(个微框架)是一个创新性的软件开发框架,专注于IPAD协议,为个人微信号以及企业信息安全提供了强大的功能和保障。GeWe的设计旨在简化开发过程,使开发者能够高效、灵活地构建和定制通信协议&#xff…

C++ 35 之 对象模型基础

#include <iostream> #include <string.h> using namespace std;class Students05{ public:// 只有非静态成员变量才算存储空间&#xff0c;其他都不算int s_a; // 非静态成员变量&#xff0c;算对象的存储空间double s_c;// 成员函数 不算对象的存储空间void f…

1毛钱1百万token,写2遍红楼梦!国产大模型下一步还想卷什么?

大模型价格战&#xff0c;这匹国产黑马又破纪录了&#xff01;最低的GLM-4 Flash版本&#xff0c;百万token价格已经低至0.1元&#xff0c;可以说是击穿地心。MaaS 2.0大升级&#xff0c;让企业训练私有模型的成本无限降低。 刚刚&#xff0c;智谱AI开放日上&#xff0c;新一代…

神经网络字符分类

按照题目要求修改了多层感知机 题目将图片的每个点作为输入&#xff0c;其中大小为28*28&#xff0c;中间有两个大小为100的隐藏层&#xff0c;激活函数是relu&#xff0c;然后输出大小是10&#xff0c;激活函数是softmax 优化器是Adam&#xff0c;结合了AdaGrad和RMSProp算法…

六、高级路由交换技术

目录 一、Eth-trunk&#xff08;以太通道或链路捆绑&#xff09; 1.1、 链路聚合模式 1.2、链路选举规则&#xff08;选举活跃和备份&#xff09; 1.3、负载分担方式 1.4、配置流程 二、vlan聚合 三、MUX vlan&#xff08;混合vlan&#xff09; 四、QinQ 五、V…

一个顶级产品经理的自我修养,从掌控AI工具开始

前言 在数字化浪潮的推动下&#xff0c;人工智能&#xff08;AI&#xff09;技术的快速发展正深刻地改变着各行各业的运营模式与竞争格局。产品经理&#xff0c;作为连接用户需求与产品设计之间的桥梁&#xff0c;在这场变革中扮演着至关重要的角色。随着AI技术的广泛应用&…

实战计算机网络02——物理层

实战计算机网络02——物理层 1、物理层实现的功能2、数据与信号2.1 数据通信模型2.2 通信领域常用术语2.3 模拟信号和数字信号 3、信道和调制3.1 信道3.2 单工通信、半双工通信、全双工通信3.3 调制3.4 奈式准则3.5 香农定律 4、传输媒体4.1 导向传输媒体4.2 非导向传输媒体 5、…

二刷算法训练营Day30 | 回溯算法(6/6)

目录 详细布置&#xff1a; 1. 回溯总结 2. 332. 重新安排行程 3. 51. N 皇后 4. 37. 解数独 详细布置&#xff1a; 1. 回溯总结 回溯是递归的副产品&#xff0c;只要有递归就会有回溯&#xff0c;所以回溯法也经常和二叉树遍历&#xff0c;深度优先搜索混在一起&#x…

KafkaQ - 好用的 Kafka Linux 命令行可视化工具

软件效果前瞻 ~ 鉴于并没有在网上找到比较好的linux平台的kafka可视化工具&#xff0c;今天为大家介绍一下自己开发的在 Linux 平台上使用的可视化工具KafkaQ 虽然简陋&#xff0c;主要可以实现下面的这些功能&#xff1a; 1&#xff09;查看当前topic的分片数量和副本数量 …

docker通过容器id查看运行命令

1、docker通过容器id查看运行命令 参考&#xff1a;https://blog.csdn.net/a772304419/article/details/138732138 docker inspect 运行镜像id“Cmd”: [ “–model”, “/qwen-7b”, “–port”, “10860”, “–max-model-len”, “4096”, “–trust-remote-code”, “–t…

LabVIEW 32位与64位版本比较分析:性能与兼容性详解

LabVIEW的32位和64位版本在功能、性能、兼容性和应用场景等方面存在差异。本文从系统要求、内存管理、性能、兼容性、驱动支持和开发维护等多个角度进行详细分析&#xff0c;帮助用户选择合适的版本。 一、系统要求 操作系统支持&#xff1a; 32位LabVIEW&#xff1a;可以在32位…

深入解析MySQL的层次化设计

一、基础架构 1.连接器 1.会先连接到这个数据库上&#xff0c;这时候接待你的就是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接 2.用户密码连接成功之后&#xff0c;会从权限表中拿出你的权限&#xff0c;后续操作权限都依赖于此时拿出的权限,这就意味着当链…

springboot项目中使用 @Lazy 注解懒加载解决循环依赖问题,以及 @Lazy 标注顺序

场景&#xff1a; Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name taskServiceImpl: Bean with name taskServiceImpl has been injected into other beans [groupServiceImpl] in its raw version as part…

Application Studio 学习笔记(1)

一、导航树 1、设置AAA的Page Type属性需设置为Tab(注意&#xff1a;有多个Tab类型Page时导航树会失效&#xff0c;并且设置为Tab后&#xff0c;该Page将不能编辑)&#xff0c;并勾选Enable Navigation&#xff0c;其中AAA为导航树起始页的父页。 2、导航树起始页及其子页的Ta…

GPT4O给Qwen2生成的高考作文打分56分,从“小白”进阶技术大神的开发者基于国产GPU推理模型效果可还行?

OpenI启智社区上线的【芯动开源】首场活动-天数智芯挑战专场即将迎来最后一周的冲刺阶段&#xff0c;自2024年5月27日上线以来&#xff0c;这期间&#xff0c;我们见证了天数智芯通用GPU加速卡在适配AI模型方面的无限可能与开发者们开源精神的璀璨光辉。 在短短的两周时间里&a…