OpenCv-filter2D()函数_opencv filter2d函数-程序员宅基地

技术标签: 计算机视觉  深度学习  opencv  

转载:opencv学习之图像卷积运算函数filter2D()

对于使用掩模板矩阵(kernel)计算每个像素值,结合函数filter2D()函数,其定义如下:

CV_EXPORTS_W void filter2D( InputArray src, OutputArray dst, int ddepth,
InputArray kernel, Point anchor=Point(-1,-1),
double delta=0, int borderType=BORDER_DEFAULT );

其官方指导文件对filter2D()函数的描述为:Convolves an image with kernel即利用内核实现对图像的卷积运算。参数含义如下:

InputArray src: 输入图像

OutputArray dst: 输出图像,和输入图像具有相同的尺寸和通道数量

int ddepth: 目标图像深度,如果没写将生成与原图像深度相同的图像。原图像和目标图像支持的图像深度如下:

src.depth() = CV_8U, ddepth = -1/CV_16S/CV_32F/CV_64F
src.depth() = CV_16U/CV_16S, ddepth = -1/CV_32F/CV_64F
src.depth() = CV_32F, ddepth = -1/CV_32F/CV_64F
src.depth() = CV_64F, ddepth = -1/CV_64F

当ddepth输入值为-1时,目标图像和原图像深度保持一致。

InputArray kernel: 卷积核(或者是相关核),一个单通道浮点型矩阵。如果想在图像不同的通道使用不同的kernel,可以先使用split()函数将图像通道事先分开。

Point anchor: 内核的基准点(anchor),其默认值为(-1,-1)说明位于kernel的中心位置。基准点即kernel中与进行处理的像素点重合的点。

double delta: 在储存目标图像前可选的添加到像素的值,默认值为0

int borderType: 像素向外逼近的方法,默认值是BORDER_DEFAULT,即对全部边界进行计算。

该函数使用于任意线性滤波器的图像,支持就地操作。当其中心移动到图像外,函数可以根据指定的边界模式进行插值运算。函数实质上是计算kernel与图像的相关性而不是卷积:
在这里插入图片描述

也就是说kernel并不是中心点的镜像,如果需要一个正真的卷积,使用函数flip()并将中心点设置为(kernel.cols - anchor.x - 1, kernel.rows - anchor.y -1).
该函数在大核(11x11或更大)的情况下使用基于DFT的算法,而在小核情况下使用直接算法(使用createLinearFilter()检索得到).

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44894740/article/details/118229533

智能推荐

Spark-SparkEnv 源码解析-程序员宅基地

文章浏览阅读126次。Spark-SparkEnv 源码解析SparkEnv ObjectSparkEnv Object属性SparkEnv Object方法create方法,比较重要的方法:SparkEnv ClassSparkEnv ObjectSparkEnv的伴生对象。下面是他的构造方法:SparkEnv Object属性@volatile private var env: SparkEnv = _ ..._sparkenv 源码

【Python自然语言处理】计算文本相似度实例(使用difflib,fuzz,余弦三种计算方式 附源码)_计算文本相似度的文本推荐-程序员宅基地

文章浏览阅读4.3k次,点赞48次,收藏87次。【Python自然语言处理】计算文本相似度实例(使用difflib,fuzz,余弦三种计算方式 附源码)_计算文本相似度的文本推荐

JVM - 优化案例(SoftRefLRUPolicyMSPerMB)-程序员宅基地

文章浏览阅读1.9w次,点赞18次,收藏39次。1、本文背景本文会给大家讲解一个比较特殊的JVM优化案例,这个优化案例本身是因为新手工程师对JVM优化可能了解了一个半吊子,然后不知道从哪里找来了一个非常特殊的JVM参数错误的设置了一下,就导致线上系统频繁的出现Full GC的问题。但是我们后续大量的优化案例其实都是各种各样奇形怪状的场景,因为正是各种奇怪场景才能让大家逐步积累出来较为丰富的JVM优化实战经验了解的场景越多,自己未来在..._softreflrupolicymspermb

pycharm多行代码缩进、左移_pycharm左缩进-程序员宅基地

文章浏览阅读5.2k次,点赞3次,收藏4次。在使用pycharm时,经常会需要多行代码同时缩进、左移,pycharm提供了快捷方式1、pycharm使多行代码同时缩进 鼠标选中多行代码后,按下Tab键,一次缩进四个字符2、pycharm使多行代码同时左移 鼠标选中多行代码后,同时按住shift+Tab键,一次左移四个字符更改2个缩进..._pycharm左缩进

职场面试,如何证明是自己是资深程序员,几句话就可能暴露能力!_如何证明自己是有经验的程序员-程序员宅基地

文章浏览阅读408次。真正的程序员为人处事方面相对比较低调,特别面试过程中不需要专门为了炫耀技术只是把面试官问的问题按部就班的回答上来就可以了,一般技术面试来讲技术面试官都会根据简历上情况做个大致的摸底,技术面试基本上通过面试就能了解个大概,因为根据简历上描述的项目经验直接问些相关的信息,提问几个具体实现方式很快就能检验出水平高低,如果回答得非常对口,可以再把问题细化,进一步挖掘掌握的程度,技术高低几个回合下来就能了解..._如何证明自己是有经验的程序员

Xml实体注入漏洞姿势总结_xml实体注入漏洞的利用方式-程序员宅基地

文章浏览阅读4.5k次,点赞3次,收藏8次。Xml实体注入漏洞姿势总结_xml实体注入漏洞的利用方式

随便推点

java获取资源文件_Java 读取resources下的资源文件-程序员宅基地

文章浏览阅读336次。Web项目中应该经常有这样的需求,在maven项目的resources目录下放一些文件。比如一些配置文件,资源文件等。文件的读取方式有好几种方式,本文会对常用的读取方式做一个总结,并说明一下应该注意的地方。准备工作新建一个spring-test 的maven项目,resources目录下创建测试文件conf.properties、city_code.json (json文件夹下)。添加pom依赖使..._通过classload读resource文件不能加\?

5个并发处理技巧-程序员宅基地

文章浏览阅读924次。原文:5 Tips on Concurrency 作者:Igor Sorokin 译者:Teixeira10【译者注】在本文中,作者总结出了5个关于处理并发性程序的技巧,并给出代码示例,让读者更好地理解和使用这5种方法。 以下为译文:1.捕获InterruptedException错误请检查下面的代码片段:public class Task implements Runnab..._并发处理技巧

html中点击图标变色,AngularJS实现按钮提示与点击变色效果-程序员宅基地

文章浏览阅读809次。本文用angularJS简单实现了一个小的按钮提示,按钮点击后会变色,注意html文件中需要引入jquery.js和angular.js运行截图:当点击按钮的时候 按钮的样式改变:css代码:*{margin: 0px;padding: 0px;}.bucSelectedButton{width: 100px;line-height: 30px;text-align: center;positio..._html点击一个按钮以后按钮变色

linux上清空一个文件,技术|Linux 下清空或删除大文件内容的 5 种方法-程序员宅基地

文章浏览阅读1.7k次。在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何 Linux 命令行编辑器 去打开这些文件。那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清空文件内容的方法。注意:在我们进一步深入了解这些方法之前,请记住: 由于在 Linux 中一切皆文件,你需要时刻注意,确保你将要清空的文件不是重要的用户文件或者系统文件。清空重要的系统文件或者配置文件可...

定点数的加减运算及实现_定点数的实现-程序员宅基地

文章浏览阅读2k次。求补运算:将原码包括符号位在内每一位取反,末位加1。补码加减运算方法:[X+Y]补=[X]补+[Y]补[X−Y]补=[X]补+[−Y]补\begin{aligned}[X+Y]_补&=[X]_补+[Y]_补\\[X-Y]_补&=[X]_补+[-Y]_补\end{aligned}[X+Y]补​[X−Y]补​​=[X]补​+[Y]补​=[X]补​+[−Y]补​​使用补码进行加减运算,符号位和数值位一样参加运算;补码的减法可以用加法来实现,任意两数之差的补码等于被减数的补码与减_定点数的实现

蒲公英 · JELLY技术周刊 Vol.06: Deno 1.0 发布前瞻,“真香定律”能否再现_在影片的不同阶段,鼠标交互有不同的效果,非常巧妙地将 web 技术与影片叙事结合到-程序员宅基地

文章浏览阅读849次。登高远眺天高地迥,觉宇宙之无穷基础技术Deno 1.0 即将发布,你需要知道的都在这里了Deno——来自 Node 之父 Ryan Dahl 的最新力作,在开源 2 年之际,终于将迎来 1.0 的正式版本。Deno 并不是 Node 的替代品,根据 Deno GitHub 官网上的介绍,Deno 是一款通用的 JavaScript/TypeScript 编程环境,它汇集了许多最出色的开源技术,并使用一个很小的可执行文件提供了全面的解决方案。如今的 Deno,基于 Rust,内置了 TypeS._在影片的不同阶段,鼠标交互有不同的效果,非常巧妙地将 web 技术与影片叙事结合到