欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

filter2D图像卷积

程序员文章站 2023-12-23 19:38:27
...

图像处理中的卷积运算一般都用来平滑图像、尖锐图像求边缘等等

七个参数分别表示:(原图,目标图,图像深度,核函数,模板中心点,delta,边界类型)
一般卷积操作只涉及到前五个参数。

原文链接:

1.Filter是一个非常耗时的操作,不过OpenCV的Filter写法比较特别

这里把原理解析一下,就可以编写自己的filter代码

OpenCV的Filter2D代码解析

2.下面这篇是对官方文档的一个翻译:

opencv学习(七)之图像卷积运算函数filter2D()

作者自己写了一段代码,重点在:

Mat kern = (Mat_<char>(3,3) << 0, -1 ,0,
                              -1, 5, -1,
                               0, -1, 0);
    Mat dstImage;
    filter2D(srcImage,dstImage,srcImage.depth(),kern);

这里的srcImage.depth()可以写为-1,表示=目标图像和原图像深度保持一致。

最后给出官方文档的定义:

filter2D图像卷积

定义如下:

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

参数说明:(一般只写前5个参数)

InputArray src: 输入图像

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

int ddepth: 目标图像深度,如果没写将生成与原图像深度相同的图像。当ddepth输入值为-1时,目标图像和原图像深度保持一致。

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

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

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

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

相关标签: subtract filter2D

上一篇:

下一篇: