OpenCV滤波器

news2024/11/24 16:20:38

滤波的作用
一副图像通过滤波器得到另一副图像;其中滤波器又称为卷积核,滤波的过程称为卷积。

图像卷积效果图
在这里插入图片描述
卷积的过程
在这里插入图片描述

一 卷积的几个基本概念

1 卷积核的大小

卷积核一般为奇数,如3X3,5X5,7X7等。
一方面是增加padding的原因。
另一面是保证锚点在中间,防止位置发生偏移的原因;
在深度学习中,卷积核越大,看到的信息(感受野)越多。提取的特征越好,同时计算量也就越大。

2 锚点

在这里插入图片描述

3 边界扩充

当卷积核打印1且不进行边界扩充,输出尺寸将相应缩小;
当卷积核以标准方式进行边界扩充,则输出数据的空间尺寸将与输入相等。

计算公式
在这里插入图片描述

4 步长

在这里插入图片描述

5 低通滤波与高通滤波

低通滤波可以去除噪音或平滑图形;
高通滤波可以帮助查找图像的边缘;

filter2D(src,ddepth,kernel,anchor,delta,borderType)

一个简单的例子
在这里插入图片描述

二 拉普拉斯算子

可以同时求两个方向的边缘
对噪音敏感,一般需要先进行去噪再调用拉普拉斯。

Lapacian(img,ddepth
ksize=1,scale=1
borderType=BORDER_DEFAULT)
import cv2
import numpy as np

img=cv2.imread('./2037551.jpg')

# 索贝尔算子Y方向边缘
#d1=cv2.Scharr(img,cv2.CV_64F,1,0)
# 索贝尔算子X方向边缘
#d2=cv2.Scharr(img,cv2.CV_64F,0,1)
#拉普拉斯
ldst=cv2.Laplacian(img,cv2.CV_64F,ksize=5)

#dst=cv2.add(d1,d2)
cv2.imshow('img',img)
cv2.imshow('ldst',ldst)
cv2.waitKey(0)

三 边缘检测 Canny

使用5x5高斯滤波消除噪声
计算图像梯度的方向(0°/45°/90°/135°)
取局部极大值
阈值计算

在这里插入图片描述

Canny API
Canny(img,minVal,maxVal,..)
import cv2
import numpy as np

img=cv2.imread('./2037551.jpg')

dst=cv2.Canny(img,100,200)

cv2.imshow('img',img)
cv2.imshow('dst',dst)

cv2.waitKey(0)

四 方盒滤波与均值滤波

在这里插入图片描述

normalize=true,a=1/WxH
normalize=fasle,a=1
当normalize==true时
方盒滤波==平均滤波

两个滤波器API

boxFilter(src,ddepth,ksize,anchor,normalize,borderType)
blur(src,ksize,anchor,borderType)
import cv2
import numpy as np

img=cv2.imread('./2037551.jpg')

dst=cv2.blur(img,(5,5))

cv2.imshow('blur',dst)
cv2.waitKey(0)

五 高斯滤波

在这里插入图片描述
原理
在这里插入图片描述
高期权重
在这里插入图片描述

GaussianBlur(img,kernel,sigmaX,sigmaY,...)

import cv2
import numpy as np

img=cv2.imread('./2037551.jpg')

dst=cv2.GaussianBlur(img,(5,5),2)

cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.waitKey(0)

六 中值滤波

假设有一个数组[1556789],取其中的中间值作为卷积后的结果值。
优点:
中值滤波的优点是对胡椒噪音效果明显。

胡椒噪音图
在这里插入图片描述
中值滤波API

medianBlur(img,ksize)

七 双边滤波

双倍滤波的优点
可以保留边缘,同时可以对边缘内的区域进行平滑处理。
双边滤波的作用是进行美颜。
双边滤波的原理

双边滤波API

bilateraFilter(img,d,sigmaColor,sigmaSpace,...)
import cv2
import numpy as np

img=cv2.imread('./2037551.jpg')

#双边滤波
dst=cv2.bilateralFilter(img,9,75,75)

cv2.imshow('img',img)

cv2.imshow('dst',dst)

cv2.waitKey(0)

八 高通滤波

1 常见的高通滤波

Sobel(索贝尔)(高斯)
Scharr(沙尔)
Sobel算子
先向x方向求导
然后在y方向求导
最终结果:|G|=|Gx|+|Gy|

Sobel API

Sobel(src,ddepth,dx,dy,ksize=3,scale=1,delta=0,borderType=BORDER_DEFAULT)
import cv2
import numpy as np

img=cv2.imread('./2037551.jpg')

#索贝尔算子Y方向边缘
dst1=cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)
dst2=cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)
cv2.imshow('img',img)

cv2.imshow('dst',dst1)
cv2.imshow('dst2',dst2)

cv2.waitKey(0)

2 沙尔算子

与Sobel类似,只不过使用的kernel值不同。

Scharr只能求x方向或y方向的边缘。

Scharr(src,ddepth,dx,dy,
scale=1,delta=0,borderType=BORDER_DEFAULT)
import cv2
import numpy as np

img=cv2.imread('./2037551.jpg')

dst1=cv2.Scharr(img,cv2.CV_64F,1,0)

dst2=cv2.Scharr(img,cv2.CV_64F,0,1)

cv2.imshow('img',img)

cv2.imshow('dst',dst1)

cv2.imshow('dst2',dst2)

cv2.waitKey(0)

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

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

相关文章

TCP相关细节

1. 常用TCP参数 1.1 ReceiveBufferSize ReceiveBuffersize指定了操作系统读缓冲区的大小, 默认值是8192(如图5-10 所示)。在第4章的例子中,会有"假设操作系统缓冲区的长度是8" 这样的描述,可通过socket.ReceiveBufferSize 8 实现。当接收端缓冲区满了的时…

【AIGC】MetaGPT原理以及应用

目录 MetaGPT原理 MetaGPT应用 MetaGPT和传统编程语言相比有什么优势和劣势 视频中的PPT 参考资料 MetaGPT原理 MetaGPT是一种多智能体框架,它结合了元编程技术,通过标准化操作程序(SOPs)来协调基于大语言模型的多智能体系统…

【问题】YOLOv9不能打印计算量问题的解决方法

【问题】改进YOLOv9后,发现训练过程中没有输出Gflops的值,如下图所示。 【解决方法】修改ultralytics/utils/torch_utils.py文件的内容。 stride = max(int(model.stride.max()), 32) if hasattr(model, stride) else 32 # max stride 修

GenICam标准(六)

系列文章目录 GenICam标准(一) GenICam标准(二) GenICam标准(三) GenICam标准(四) GenICam标准(五) GenICam标准(六) 文章目录 系列文…

剃头师傅不担心AI大模型 到底谁该担心?

到底学什么,不会被AI替代? 我家附近有一家美容店,已经开了20多年,店里的一位伙计硬是靠着自己的坚持从学徒熬成了门店的合伙人,所以现在去理发时,我都叫他“周董”。 这天,我问他,…

swiftui中使用icon图标时,让中间部分不透明显示

在使用了Image(systemName: "plus.circle.fill")这个视图组件后,发现中间的加号竟然是透明的,但是我们想要的是不让它透明,该怎么做呢? 最简单的方式就是给这个图片设置一个白色的背景是不是就好了?我们可以…

记一次全设备通杀未授权RCE的挖掘经历

想来上一次挖洞还在一年前的大一下,然后就一直在忙活写论文,感觉挺枯燥的(可能是自己不太适合弄学术吧QAQ),所以年初1~2月的时候,有空的时候就又会挖一挖国内外各大知名厂商的设备,拿了几份思科…

超好用的几个提升知识储备的网站-搜嗖工具箱

和图书 https://www.hetushu.com/ 一个好用的免费看小说网站。和图书是一个提供各种热门电子书,书籍,小说免费在线阅读的网站,涵盖网游、玄幻、穿越、科幻、仙侠、都市、武侠、历史、竞技、军事灵异等多个种类的小说。在这个网站看小说最大的感触简单干净&#xff…

VMware软件的安装与安装Win10系统

上一篇写了(虚拟机)VMware软件的安装及Ubuntu系统安装,这次续上部分,安装完Ubuntu系统后,又安装了win10,也记录一下。 事前准备好win10镜像文件,可在微软官网下载 入口地址:软件下…

C++ 19 之 封装

c19封装.cpp #include <iostream> #include <string.h> using namespace std;// 封装&#xff1a;将行为和属性作为一个整体来表现生活中的事物// 人&#xff1a; 行为&#xff1a; 吃饭 属性&#xff1a; 姓名、年龄 struct person {char name[20];int age;…

每日5题Day25 - LeetCode 121 - 125

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;121. 买卖股票的最佳时机 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxProfit(int[] prices) {if(prices.length 1){return 0;}//dp…

log4j漏洞学习

log4j漏洞学习 总结基础知识属性占位符之Interpolator&#xff08;插值器&#xff09;模式布局日志级别 Jndi RCE CVE-2021-44228环境搭建漏洞复现代码分析日志记录/触发点消息格式化 Lookup 处理JNDI 查询触发条件敏感数据带外漏洞修复MessagePatternConverter类JndiManager#l…

服务器远程桌面经常连接不上,造成远程桌面连接不上的原因都有哪些

服务器远程桌面连接不稳定或经常连接不上是一个较为常见的技术问题&#xff0c;其可能的原因涉及多个层面&#xff0c;包括网络设置、服务器配置、系统安全等方面。下面将详细探讨一些可能造成远程桌面连接问题的主要原因&#xff1a; 首先&#xff0c;网络连接不稳定是导致远…

【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt窗口 | 标准对话框 | 颜色对话框QColorDialog 文章编号&#xff1a;…

带侧边栏布局:带导航的网页

目录 任务描述 相关知识 HTML(HyperText Markup Language) CSS&#xff08;Cascading Style Sheets&#xff09;&#xff1a; 编程要求 任务描述 在本关中&#xff0c;你的任务是创建一个带侧边栏和导航的网页布局。这种布局通常用于网站或应用程序&#xff0c;其中侧边栏…

企业网站建设方案

企业网站建设方案是企业推广和宣传的重要工具&#xff0c;可以帮助企业树立良好的形象&#xff0c;吸引更多的客户和合作伙伴。一个好的企业网站应该具备用户友好的界面设计、快速的加载速度、完善的信息分类和搜索功能、优质的内容和多样化的互动体验。下面将从以下几个方面介…

适合加密货币交易者的免费指标

本文介绍了7种用于分析加密货币市场的免费技术指标&#xff0c;帮助交易者和投资者提升交易技巧和盈利能力。原文: Best 7 Free Trading Indicators for Every Cryptocurrency Trader Austin Distel Unsplash 大家好&#xff01;无论是加密货币市场的交易者还是投资者&#xff…

基于springboot实现交通管理在线服务系统项目【项目源码+论文说明】

基于springboot实现交通管理在线服务系统演示 摘要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装交通管理在线服…

【设计模式深度剖析】【6】【行为型】【中介者模式】

&#x1f448;️上一篇:迭代器模式 | 下一篇:观察者模式&#x1f449;️ 设计模式-专栏&#x1f448;️ 文章目录 中介者模式定义英文原文直译如何理解&#xff1f; 中介者模式的角色1. 中介者&#xff08;Mediator&#xff09;2. 具体中介者&#xff08;ConcreteMediato…

最新2024FL Studio21中文激活注册码获取方法步骤教程!

在音乐创作领域&#xff0c;FL Studio21无疑是一款强大的工具。然而&#xff0c;对于许多初学者来说&#xff0c;如何正确注册和激活FL Studio21成了一个难题。今天&#xff0c;我们就来为大家详细解答这个问题。 我们需要在FL Studio21的官方网站上购买正版软件。 在购买过程…