OpenCV滤波器

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

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

一 卷积的几个基本概念

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 npimg=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 npimg=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 npimg=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 npimg=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 npimg=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 npimg=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 npimg=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.mzph.cn/pingmian/27328.shtml

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

相关文章

activiti(一)-相关概述及相关表的定义

官网 1、概述 Activiti 是一个开源的、以 Java 为中心的业务流程管理(BPM)平台,旨在帮助企业自动化和管理复杂的业务流程。其核心功能包括工作流管理、任务分配、事件处理、流程监控和集成等。 1.1、主要功能和特点 流程设计和建模&#…

GaussDB技术解读——GaussDB架构介绍(三)

目录 9 智能关键技术方案 智能关键技术一:自治运维系统 智能关键技术二:库内AI引擎 智能关键技术三:智能优化器 10 驱动接口关键技术方案 GaussDB架构介绍(二)从数据持久化存取层(DataNode)关键技术方案、全局事…

Druid未授权访问漏洞修复

前言 安全组针对系统漏扫发现系统存在Druid未授权访问,会引发泄露系统敏感信息,漏洞链接为ip:端口/druid/index.html,可以清楚的查看数据库的相关连接信息,如下图所示: 漏洞修复 1、关闭Druid监控页面 在Druid的配…

右值引用和移动语义

什么是左值?什么是右值? 通俗来讲,可以出现在赋值语句左侧的,为左值;只能出现在赋值语句右侧的,为右值。 左值与右值的本质区别在于:左值能取地址,但右值不能。 本文主要通过三个场景…

使用星鸾云GPU云服务器搭配Jupyter Lab,创建个人AI大模型

最近我们公司IT部门宣布了一个大事情,他们开发了一款内部用的大模型,叫作一号AI员工(其实就是一个聊天机器人),这个一号员工可以回答所有关于公司财务、人事、制度、产品方面的问题。 我问了句:公司加班有…

GMT6绘制北半球

设置绘制区域及投影方式 投影方式选择立体等角投影,在GMT6中的命令是-Js # 定义区域变量和投影变量,纬度从北纬30度到极点 region-180/180/30/90 projection0/90/1:60000000 gmt set PROJ_ELLIPSOID WGS-84定义CPT及地形展示 现在定义一个CPT用于显示…

欧式家居官网源码系统-轻奢大气设计风格

一款家居家私的官方网站系统,设计轻奢大气。 前端内容均可通过后台修改。当然你也可以用于其他行业的官网使用,只要你喜欢这个设计。 大致功能: 1、会员系统 2、支付功能 3、标签功能 4、熊掌号提交功能 5、文章发布功能 6、SEO设置功能 7、多…

[学习笔记] VFX Silhouette

目录 Part 1 : The interface of Silhouettte (Silhouette的界面介绍) Part 2: The shape divisions and manual roto(形状分区和手动roto工作): Part 3: tracking : Part 4: Mocha Tracking Part 5: Motion Blur(…

【单片机毕业设计选题24004】-基于STM32和阿里云的智能鱼缸控制系统

系统功能: 此设计采用STM32单片机将采集到的环境温度,TDS值,PH值等显示在OLED上,并将这些信息上报至阿里云平台。系统可通过阿里云平台或按键开关加热继电器,增氧继电器,水泵继电器和舵机. 主要功能模块原理图: 电源时钟烧录接口: 单片机和按键输入电路: 继电器控…

vscode插件开发之 - menu配置

上一遍博客介绍了如何从0到1搭建vscode插件开发的base code,这遍博客将重点介绍如何配置menu。通常,开发一款插件,会将插件显示在VSCode 左侧的活动栏(Activity Bar),那么如何配置让插件显示在Activity Bar…

香橙派鲲鹏Pro(orange pi kunpeng) 开箱测试,和在娱乐功能(电视盒子),深度机器学习应用方面的测试报告

摘要 对Orange Pi kunpeng这个开发板进行综合评测,特别关注其作为电视盒子的性能以及在深度学习应用中的算力和稳定性。通过一个月的测试,我们评估了其硬件性能、软件兼容性、用户体验和实际应用潜力 引言 5月份,我收到了csdn 对Orange P…

LabVIEW阀性能测试平台

项目背景 公司需要开发一套综合测试平台,用于测试汽车气压制动系统控制装置和调节装置的性能。测试平台需满足QC/T标准,并实现多项测试功能,包括密封性测试、静特性测试、动态特性测试等。公司要求系统基于LabVIEW开发,以便于与现…

C++ 06 之 c++增强

c06c增强.cpp #include <iostream>using namespace std; // 1、全局变量检测增强&#xff1a;可以检测出重定义 (c语言不会报错&#xff0c;但是C会报错) //int a; //int a 10;// 2、函数检测增强: 函数返回值类型、形参类型、实参个数 int sum(int a, int b) {return …

【总线】AMBA总线架构的发展历程

目录 引言 发展历程 第一代AMBA&#xff08;AMBA 1&#xff09; 第二代AMBA&#xff08;AMBA 2&#xff09; 第三代AMBA&#xff08;AMBA 3&#xff09; 第四代AMBA&#xff08;AMBA 4&#xff09; 第五代AMBA&#xff08;AMBA 5&#xff09; AMBA协议简介 ASB&#x…

JavaScript快速入门系列-3(函数基础)

第三章:函数基础 3.1 函数定义与调用3.1.1 函数声明3.1.2 函数表达式3.2 参数与返回值3.3 匿名函数与立即执行函数表达式(IIFE)3.3.1 匿名函数3.3.2 立即执行函数表达式3.4 箭头函数3.4.1 箭头函数与this3.5 函数的高级话题3.5.1 闭包3.5.2 函数柯里化3.5.3 高阶函数小结在Jav…

【C++课程学习】:Data类的实现

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;C课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f369;1.头文件 &#x1f369;2.实现文件&#xff1a; &#x1f369;3.分析&#xff1a; &…

【硬件模块】SSD1306 OLED屏幕(含GD32ESP32驱动代码)

OLED屏幕 最近在写GD32的文章&#xff0c;之前STM32有OLED屏幕来展示数据&#xff0c;ESP32可以直接打印到电脑屏幕上&#xff0c;GD32的话手上就没有办法了。 虽然是可以直接把STM32的OLED屏幕的驱动代码改改移植到GD32上面&#xff0c;不过想了想干脆写一个文章来说说如何驱…

2024牛客网高频精选Java面试八股文整理(附答案)

Java 面试 Java 作为编程语言中的 NO.1,选择入行做 IT 做编程开发的人&#xff0c;基本都把它作为首选语言,进大厂拿高薪也是大多数小伙伴们的梦想。以前 Java 岗位人才的空缺&#xff0c;而需求量又大&#xff0c;所以这种人才供不应求的现状&#xff0c;就是 Java 工程师的薪…

公用nacos,实现只调用本机相应服务,不出现负载均衡到别人机器上

当我们有两个研发同时在调试一个微服务模块时&#xff0c;你和对方本地都会启动服务&#xff0c;这就导致在nacos会同时注册两个实例。默认情况下请求这个服务&#xff0c;具体处理请求的程序会在你和对方之间来回轮询&#xff0c;即一下你的服务一下对方的服务。 其结果就导…

栈(Stack)汇总

栈简介 栈&#xff08;Stack&#xff09;是只允许在一端进行插入或者删除操作的线性表。它的操作特性可以概括为——后进先出&#xff08;Last In First Out&#xff0c;LIFO&#xff09;。栈顶&#xff08;Top&#xff09;——线性表允许进行插入删除的一端&#xff1b; 栈底…